﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class Algorithms
   </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class Algorithms
   ">
    <meta name="generator" content="docfx 2.56.4.0">
    
    <link rel="shortcut icon" href="../favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../logo.svg" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Wintellect.PowerCollections.Algorithms">
  
  
  <h1 id="Wintellect_PowerCollections_Algorithms" data-uid="Wintellect.PowerCollections.Algorithms" class="text-break">Class Algorithms
  </h1>
  <div class="markdown level0 summary"><p>Algorithms contains a number of static methods that implement
algorithms that work on collections. Most of the methods deal with
the standard generic collection interfaces such as IEnumerable&lt;T&gt;,
ICollection&lt;T&gt; and IList&lt;T&gt;.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">Algorithms</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Wintellect.PowerCollections.html">Wintellect.PowerCollections</a></h6>
  <h6><strong>Assembly</strong>: CADability.dll</h6>
  <h5 id="Wintellect_PowerCollections_Algorithms_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class Algorithms</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IComparer___0__System_Int32__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.BinarySearch%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Collections.Generic.IComparer%7B%60%600%7D%2CSystem.Int32%40)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4194">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_BinarySearch_" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IComparer___0__System_Int32__" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IComparer{``0},System.Int32@)">BinarySearch&lt;T&gt;(IList&lt;T&gt;, T, IComparer&lt;T&gt;, out Int32)</h4>
  <div class="markdown level1 summary"><p>Searches a sorted list for an item via binary search. The list must be sorted
by the ordering in the passed instance of IComparer&lt;T&gt;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int BinarySearch&lt;T&gt;(IList&lt;T&gt; list, T item, IComparer&lt;T&gt; comparer, out int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The sorted list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to sort the list. Only
the Compare method is used.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>Returns the first index at which the item can be found. If the return
value is zero, indicating that <code data-dev-comment-type="paramref" class="paramref">item</code> was not present in the list, then this
returns the index at which <code data-dev-comment-type="paramref" class="paramref">item</code> could be inserted to maintain the sorted
order of the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items equal to <code data-dev-comment-type="paramref" class="paramref">item</code> that appear in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Comparison___0__System_Int32__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.BinarySearch%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Comparison%7B%60%600%7D%2CSystem.Int32%40)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4285">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_BinarySearch_" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Comparison___0__System_Int32__" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch``1(System.Collections.Generic.IList{``0},``0,System.Comparison{``0},System.Int32@)">BinarySearch&lt;T&gt;(IList&lt;T&gt;, T, Comparison&lt;T&gt;, out Int32)</h4>
  <div class="markdown level1 summary"><p>Searches a sorted list for an item via binary search. The list must be sorted
by the ordering in the passed Comparison&lt;T&gt; delegate.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int BinarySearch&lt;T&gt;(IList&lt;T&gt; list, T item, Comparison&lt;T&gt; comparison, out int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The sorted list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to sort the list.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>Returns the first index at which the item can be found. If the return
value is zero, indicating that <code data-dev-comment-type="paramref" class="paramref">item</code> was not present in the list, then this
returns the index at which <code data-dev-comment-type="paramref" class="paramref">item</code> could be inserted to maintain the sorted
order of the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items equal to <code data-dev-comment-type="paramref" class="paramref">item</code> that appear in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Int32__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.BinarySearch%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Int32%40)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4175">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_BinarySearch_" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_BinarySearch__1_System_Collections_Generic_IList___0____0_System_Int32__" data-uid="Wintellect.PowerCollections.Algorithms.BinarySearch``1(System.Collections.Generic.IList{``0},``0,System.Int32@)">BinarySearch&lt;T&gt;(IList&lt;T&gt;, T, out Int32)</h4>
  <div class="markdown level1 summary"><p>Searches a sorted list for an item via binary search. The list must be sorted
by the natural ordering of the type (it's implementation of IComparable&lt;T&gt;).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int BinarySearch&lt;T&gt;(IList&lt;T&gt; list, T item, out int index)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The sorted list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>Returns the first index at which the item can be found. If the return
value is zero, indicating that <code data-dev-comment-type="paramref" class="paramref">item</code> was not present in the list, then this
returns the index at which <code data-dev-comment-type="paramref" class="paramref">item</code> could be inserted to maintain the sorted
order of the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items equal to <code data-dev-comment-type="paramref" class="paramref">item</code> that appear in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_CartesianProduct__2_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___1__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.CartesianProduct%60%602(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%601%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2890">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_CartesianProduct_" data-uid="Wintellect.PowerCollections.Algorithms.CartesianProduct*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_CartesianProduct__2_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___1__" data-uid="Wintellect.PowerCollections.Algorithms.CartesianProduct``2(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1})">CartesianProduct&lt;TFirst, TSecond&gt;(IEnumerable&lt;TFirst&gt;, IEnumerable&lt;TSecond&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the cartestian product of two collections: all possible pairs of items, with the first item taken from the first collection and
the second item taken from the second collection. If the first collection has N items, and the second collection has M items, the cartesian
product will have N * M pairs.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;Pair&lt;TFirst, TSecond&gt;&gt; CartesianProduct&lt;TFirst, TSecond&gt;(IEnumerable&lt;TFirst&gt; first, IEnumerable&lt;TSecond&gt; second)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TFirst&gt;</td>
        <td><span class="parametername">first</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TSecond&gt;</td>
        <td><span class="parametername">second</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Wintellect.PowerCollections.Pair-2.html">Pair</a>&lt;TFirst, TSecond&gt;&gt;</td>
        <td><p>An IEnumerable&lt;Pair&lt;TFirst, TSecond&gt;&gt; that enumerates the cartesian product of the two collections.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TFirst</span></td>
        <td><p>The type of items in the first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TSecond</span></td>
        <td><p>The type of items in the second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Concatenate__1_System_Collections_Generic_IEnumerable___0____.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Concatenate%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5250">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Concatenate_" data-uid="Wintellect.PowerCollections.Algorithms.Concatenate*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Concatenate__1_System_Collections_Generic_IEnumerable___0____" data-uid="Wintellect.PowerCollections.Algorithms.Concatenate``1(System.Collections.Generic.IEnumerable{``0}[])">Concatenate&lt;T&gt;(IEnumerable&lt;T&gt;[])</h4>
  <div class="markdown level1 summary"><p>Concatenates all the items from several collections. The collections need not be of the same type, but
must have the same item type.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Concatenate&lt;T&gt;(params IEnumerable&lt;T&gt;[] collections)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;[]</td>
        <td><span class="parametername">collections</span></td>
        <td><p>The set of collections to concatenate. In many languages, this parameter
can be specified as several individual parameters.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable that enumerates all the items in each of the collections, in order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Convert__2_System_Collections_Generic_IEnumerable___0__System_Converter___0___1__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Convert%60%602(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Converter%7B%60%600%2C%60%601%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5074">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Convert_" data-uid="Wintellect.PowerCollections.Algorithms.Convert*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Convert__2_System_Collections_Generic_IEnumerable___0__System_Converter___0___1__" data-uid="Wintellect.PowerCollections.Algorithms.Convert``2(System.Collections.Generic.IEnumerable{``0},System.Converter{``0,``1})">Convert&lt;TSource, TDest&gt;(IEnumerable&lt;TSource&gt;, Converter&lt;TSource, TDest&gt;)</h4>
  <div class="markdown level1 summary"><p>Convert a collection of items by applying a delegate to each item in the collection. The resulting collection
contains the result of applying <code data-dev-comment-type="paramref" class="paramref">converter</code> to each item in <code data-dev-comment-type="paramref" class="paramref">sourceCollection</code>, in
order.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;TDest&gt; Convert&lt;TSource, TDest&gt;(IEnumerable&lt;TSource&gt; sourceCollection, Converter&lt;TSource, TDest&gt; converter)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TSource&gt;</td>
        <td><span class="parametername">sourceCollection</span></td>
        <td><p>The collection of item being converted.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Converter</span>&lt;TSource, TDest&gt;</td>
        <td><span class="parametername">converter</span></td>
        <td><p>A delegate to the method to call, passing each item in <code data-dev-comment-type="paramref" class="paramref">sourceCollection</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TDest&gt;</td>
        <td><p>The resulting collection from applying <code data-dev-comment-type="paramref" class="paramref">converter</code> to each item in <code data-dev-comment-type="paramref" class="paramref">sourceCollection</code>, in
order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TSource</span></td>
        <td><p>The type of items in the collection to convert.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TDest</span></td>
        <td><p>The type each item is being converted to.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">sourceCollection</code> or <code data-dev-comment-type="paramref" class="paramref">converter</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0____0___System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600%5B%5D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5628">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0____0___System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IEnumerable{``0},``0[],System.Int32)">Copy&lt;T&gt;(IEnumerable&lt;T&gt;, T[], Int32)</h4>
  <div class="markdown level1 summary"><p>Copies all of the items from the collection <code data-dev-comment-type="paramref" class="paramref">source</code> to the array <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting
at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IEnumerable&lt;T&gt; source, T[] dest, int destIndex)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The collection that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The array to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index to begin copying items to.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Length.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentException</span></td>
        <td><p>The collection has more items than will fit into the array. In this case, the array
has been filled with as many items as fit before the exception is thrown.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0____0___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5711">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0____0___System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IEnumerable{``0},``0[],System.Int32,System.Int32)">Copy&lt;T&gt;(IEnumerable&lt;T&gt;, T[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Copies at most <code data-dev-comment-type="paramref" class="paramref">count</code> items from the collection <code data-dev-comment-type="paramref" class="paramref">source</code> to the array <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting
at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>. The source collection must not be
the destination array or part thereof.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IEnumerable&lt;T&gt; source, T[] dest, int destIndex, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The collection that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The array to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index to begin copying items to.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The maximum number of items to copy. The array must be large enought to fit this number of items.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Length.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative or <code data-dev-comment-type="paramref" class="paramref">destIndex</code> + <code data-dev-comment-type="paramref" class="paramref">count</code>
is greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Length.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IList___0__System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5611">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IList___0__System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IList{``0},System.Int32)">Copy&lt;T&gt;(IEnumerable&lt;T&gt;, IList&lt;T&gt;, Int32)</h4>
  <div class="markdown level1 summary"><p>Copies all of the items from the collection <code data-dev-comment-type="paramref" class="paramref">source</code> to the list <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting
at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>. If necessary, the size of the destination list is expanded.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IEnumerable&lt;T&gt; source, IList&lt;T&gt; dest, int destIndex)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The collection that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The list to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index to begin copying items to.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Count.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IList___0__System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5663">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IList___0__System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IList{``0},System.Int32,System.Int32)">Copy&lt;T&gt;(IEnumerable&lt;T&gt;, IList&lt;T&gt;, Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Copies at most <code data-dev-comment-type="paramref" class="paramref">count</code> items from the collection <code data-dev-comment-type="paramref" class="paramref">source</code> to the list <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting
at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>. If necessary, the size of the destination list is expanded. The source collection must not be
the destination list or part thereof.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IEnumerable&lt;T&gt; source, IList&lt;T&gt; dest, int destIndex, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The collection that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The list to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index to begin copying items to.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The maximum number of items to copy.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Count</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IList___0__System_Int32___0___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2C%60%600%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5826">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IList___0__System_Int32___0___System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IList{``0},System.Int32,``0[],System.Int32,System.Int32)">Copy&lt;T&gt;(IList&lt;T&gt;, Int32, T[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Copies <code data-dev-comment-type="paramref" class="paramref">count</code> items from the list or array <code data-dev-comment-type="paramref" class="paramref">source</code>, starting at the index <code data-dev-comment-type="paramref" class="paramref">sourceIndex</code>,
to the array <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>.
The source may be the same as the destination array.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IList&lt;T&gt; source, int sourceIndex, T[] dest, int destIndex, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The list or array that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">sourceIndex</span></td>
        <td><p>The index within <code data-dev-comment-type="paramref" class="paramref">source</code>to begin copying items from.</p>
</td>
      </tr>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The array to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index within <code data-dev-comment-type="paramref" class="paramref">dest</code>to begin copying items to.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The maximum number of items to copy. The destination array must be large enough to hold this many items.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">sourceIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">source</code>.Count</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Length</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative or too large.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IList___0__System_Int32_System_Collections_Generic_IList___0__System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Copy%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5752">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Copy_" data-uid="Wintellect.PowerCollections.Algorithms.Copy*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Copy__1_System_Collections_Generic_IList___0__System_Int32_System_Collections_Generic_IList___0__System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Copy``1(System.Collections.Generic.IList{``0},System.Int32,System.Collections.Generic.IList{``0},System.Int32,System.Int32)">Copy&lt;T&gt;(IList&lt;T&gt;, Int32, IList&lt;T&gt;, Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Copies <code data-dev-comment-type="paramref" class="paramref">count</code> items from the list <code data-dev-comment-type="paramref" class="paramref">source</code>, starting at the index <code data-dev-comment-type="paramref" class="paramref">sourceIndex</code>,
to the list <code data-dev-comment-type="paramref" class="paramref">dest</code>, starting at the index <code data-dev-comment-type="paramref" class="paramref">destIndex</code>. If necessary, the size of the destination list is expanded.
The source and destination lists may be the same.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Copy&lt;T&gt;(IList&lt;T&gt; source, int sourceIndex, IList&lt;T&gt; dest, int destIndex, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The collection that provide the source items.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">sourceIndex</span></td>
        <td><p>The index within <code data-dev-comment-type="paramref" class="paramref">source</code>to begin copying items from.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">dest</span></td>
        <td><p>The list to store the items into.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">destIndex</span></td>
        <td><p>The index within <code data-dev-comment-type="paramref" class="paramref">dest</code>to begin copying items to.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The maximum number of items to copy.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">sourceIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">source</code>.Count</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">destIndex</code> is negative or
greater than <code data-dev-comment-type="paramref" class="paramref">dest</code>.Count</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative or too large.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> or <code data-dev-comment-type="paramref" class="paramref">dest</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Count__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Count%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5416">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Count_" data-uid="Wintellect.PowerCollections.Algorithms.Count*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Count__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.Count``1(System.Collections.Generic.IEnumerable{``0})">Count&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Count the number of items in an IEnumerable&lt;T&gt; collection. If
a more specific collection type is being used, it is more efficient to use
the Count property, if one is provided.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int Count&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to count items in.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Count__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection implements ICollection&lt;T&gt;, this method
simply returns ICollection&lt;T&gt;.Count. Otherwise, it enumerates all items
and counts them.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_CountEqual__1_System_Collections_Generic_IEnumerable___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.CountEqual%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5442">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_CountEqual_" data-uid="Wintellect.PowerCollections.Algorithms.CountEqual*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_CountEqual__1_System_Collections_Generic_IEnumerable___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.CountEqual``1(System.Collections.Generic.IEnumerable{``0},``0)">CountEqual&lt;T&gt;(IEnumerable&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Counts the number of items in the collection that are equal to <code data-dev-comment-type="paramref" class="paramref">find</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int CountEqual&lt;T&gt;(IEnumerable&lt;T&gt; collection, T find)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to count items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">find</span></td>
        <td><p>The item to compare to.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items in the collection that are equal to <code data-dev-comment-type="paramref" class="paramref">find</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_CountEqual__1_System_Collections_Generic_IEnumerable___0____0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_CountEqual__1_System_Collections_Generic_IEnumerable___0____0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.CountEqual%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5457">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_CountEqual_" data-uid="Wintellect.PowerCollections.Algorithms.CountEqual*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_CountEqual__1_System_Collections_Generic_IEnumerable___0____0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.CountEqual``1(System.Collections.Generic.IEnumerable{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">CountEqual&lt;T&gt;(IEnumerable&lt;T&gt;, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Counts the number of items in the collection that are equal to <code data-dev-comment-type="paramref" class="paramref">find</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int CountEqual&lt;T&gt;(IEnumerable&lt;T&gt; collection, T find, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to count items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">find</span></td>
        <td><p>The item to compare to.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The comparer to use to determine if two items are equal. Only the Equals
member function will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items in the collection that are equal to <code data-dev-comment-type="paramref" class="paramref">find</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">equalityComparer</code>
is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_CountWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.CountWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4955">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_CountWhere_" data-uid="Wintellect.PowerCollections.Algorithms.CountWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_CountWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.CountWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">CountWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Counts the number of items in the collection that satisfy the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int CountWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to count items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The number of items in the collection that satisfy <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.DisjointSets%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2539">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_DisjointSets_" data-uid="Wintellect.PowerCollections.Algorithms.DisjointSets*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.DisjointSets``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">DisjointSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if two collections are disjoint, considered as sets. Two sets are disjoint if they
have no common items.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool DisjointSets&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> are <code data-dev-comment-type="paramref" class="paramref">collection2</code> are disjoint, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsDisjoint method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.DisjointSets%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2558">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_DisjointSets_" data-uid="Wintellect.PowerCollections.Algorithms.DisjointSets*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.DisjointSets``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">DisjointSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if two collections are disjoint, considered as sets. Two sets are disjoint if they
have no common items.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool DisjointSets&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparerComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> are <code data-dev-comment-type="paramref" class="paramref">collection2</code> are disjoint, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_DisjointSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsDisjoint method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.EqualCollections%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5272">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_EqualCollections_" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if the two collections contain equal items in the same order. The two collections do not need
to be of the same type; it is permissible to compare an array and an OrderedBag, for instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to compare.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if the collections have equal items in the same order. If both collections are empty, true is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collections.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.EqualCollections%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5289">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_EqualCollections_" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if the two collections contain equal items in the same order. The passed
instance of IEqualityComparer&lt;T&gt; is used for determining if two items are equal.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals member function of this interface is called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if the collections have equal items in the same order. If both collections are empty, true is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collections.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code>, <code data-dev-comment-type="paramref" class="paramref">collection2</code>, or
<code data-dev-comment-type="paramref" class="paramref">equalityComparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.EqualCollections%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5341">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_EqualCollections_" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.EqualCollections``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if the two collections contain &quot;equal&quot; items in the same order. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to compare.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.
This predicate can compute any relation between two items; it need not represent equality or an equivalence relation.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">predicate</code>returns true for each corresponding pair of
items in the two collections. If both collections are empty, true is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collections.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being tested
for need not be equality. For example, the following code determines if each integer in
list1 is less than or equal to the corresponding integer in list2.</p>
<pre><code>List&lt;int> list1, list2;
if (EqualCollections(list1, list2, delegate(int x, int y) { return x &lt;= y; }) {
    // the check is true...
}</code></pre>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code>, <code data-dev-comment-type="paramref" class="paramref">collection2</code>, or
<code data-dev-comment-type="paramref" class="paramref">predicate</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.EqualSets%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2592">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_EqualSets_" data-uid="Wintellect.PowerCollections.Algorithms.EqualSets*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.EqualSets``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">EqualSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if two collections are equal, considered as sets. Two sets are equal if they
have have the same items, with order not being significant.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool EqualSets&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> are <code data-dev-comment-type="paramref" class="paramref">collection2</code> are equal, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the EqualTo method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.EqualSets%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2611">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_EqualSets_" data-uid="Wintellect.PowerCollections.Algorithms.EqualSets*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.EqualSets``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">EqualSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if two collections are equal, considered as sets. Two sets are equal if they
have have the same items, with order not being significant.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool EqualSets&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> are <code data-dev-comment-type="paramref" class="paramref">collection2</code> are equal, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the EqualTo method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Exists__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Exists%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4907">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Exists_" data-uid="Wintellect.PowerCollections.Algorithms.Exists*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Exists__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.Exists``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">Exists&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if a collection contains any item that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool Exists&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to check all the items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if the collection contains one or more items that satisfy the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>. False if the collection does not contain
an item that satisfies <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Fill__1___0_____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Fill%60%601(%60%600%5B%5D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5530">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Fill_" data-uid="Wintellect.PowerCollections.Algorithms.Fill*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Fill__1___0_____0_" data-uid="Wintellect.PowerCollections.Algorithms.Fill``1(``0[],``0)">Fill&lt;T&gt;(T[], T)</h4>
  <div class="markdown level1 summary"><p>Replaces each item in a array with a given value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Fill&lt;T&gt;(T[] array, T value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">array</span></td>
        <td><p>The array to modify.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The value to fill with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">array</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Fill__1_System_Collections_Generic_IList___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Fill%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5510">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Fill_" data-uid="Wintellect.PowerCollections.Algorithms.Fill*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Fill__1_System_Collections_Generic_IList___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.Fill``1(System.Collections.Generic.IList{``0},``0)">Fill&lt;T&gt;(IList&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Replaces each item in a list with a given value. The list does not change in size.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Fill&lt;T&gt;(IList&lt;T&gt; list, T value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to modify.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The value to fill with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is a read-only list.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FillRange__1___0___System_Int32_System_Int32___0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FillRange%60%601(%60%600%5B%5D%2CSystem.Int32%2CSystem.Int32%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5583">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FillRange_" data-uid="Wintellect.PowerCollections.Algorithms.FillRange*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FillRange__1___0___System_Int32_System_Int32___0_" data-uid="Wintellect.PowerCollections.Algorithms.FillRange``1(``0[],System.Int32,System.Int32,``0)">FillRange&lt;T&gt;(T[], Int32, Int32, T)</h4>
  <div class="markdown level1 summary"><p>Replaces each item in a part of a array with a given value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void FillRange&lt;T&gt;(T[] array, int start, int count, T value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">array</span></td>
        <td><p>The array to modify.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">start</span></td>
        <td><p>The index at which to start filling. The first index in the array has index 0.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items to fill.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The value to fill with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> or <code data-dev-comment-type="paramref" class="paramref">count</code> is negative, or
<code data-dev-comment-type="paramref" class="paramref">start</code> + <code data-dev-comment-type="paramref" class="paramref">count</code> is greater than <code data-dev-comment-type="paramref" class="paramref">array</code>.Length.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">array</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FillRange__1_System_Collections_Generic_IList___0__System_Int32_System_Int32___0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FillRange%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Int32%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5553">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FillRange_" data-uid="Wintellect.PowerCollections.Algorithms.FillRange*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FillRange__1_System_Collections_Generic_IList___0__System_Int32_System_Int32___0_" data-uid="Wintellect.PowerCollections.Algorithms.FillRange``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0)">FillRange&lt;T&gt;(IList&lt;T&gt;, Int32, Int32, T)</h4>
  <div class="markdown level1 summary"><p>Replaces each item in a part of a list with a given value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void FillRange&lt;T&gt;(IList&lt;T&gt; list, int start, int count, T value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to modify.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">start</span></td>
        <td><p>The index at which to start filling. The first index in the list has index 0.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items to fill.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The value to fill with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is a read-only list.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> or <code data-dev-comment-type="paramref" class="paramref">count</code> is negative, or
<code data-dev-comment-type="paramref" class="paramref">start</code> + <code data-dev-comment-type="paramref" class="paramref">count</code> is greater than <code data-dev-comment-type="paramref" class="paramref">list</code>.Count.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindFirstIndexWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindFirstIndexWhere%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1879">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindFirstIndexWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindFirstIndexWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindFirstIndexWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindFirstIndexWhere``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">FindFirstIndexWhere&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FindFirstIndexWhere&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item satisfying the condition. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindFirstWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1731">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindFirstWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindFirstWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindFirstWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">FindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the first item in a collection that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T FindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The first item in the collection that matches the condition, or the default value for T (0 or null) if no
item that matches the condition is found.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the default value for T could be present in the collection, and
would be matched by the predicate, then this method is inappropriate, because
you cannot disguish whether the default value for T was actually present in the collection,
or no items matched the predicate. In this case, use TryFindFirstWhere.</p>
</div>
  <h5 id="Wintellect_PowerCollections_Algorithms_FindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_TryFindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__">TryFindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;, out T)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindIndicesWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindIndicesWhere%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1933">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindIndicesWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindIndicesWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindIndicesWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindIndicesWhere``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">FindIndicesWhere&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in <code data-dev-comment-type="paramref" class="paramref">list</code> that satisfy the condition defined
by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; FindIndicesWhere&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to check all the items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items that satisfy the condition.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindLastIndexWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindLastIndexWhere%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1907">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindLastIndexWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindLastIndexWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindLastIndexWhere__1_System_Collections_Generic_IList___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindLastIndexWhere``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">FindLastIndexWhere&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FindLastIndexWhere&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item satisfying the condition. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindLastWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1785">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindLastWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindLastWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindLastWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">FindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the last item in a collection that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T FindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The last item in the collection that matches the condition, or the default value for T (0 or null) if no
item that matches the condition is found.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection implements IList&lt;T>, then the list is scanned in reverse until a 
    matching item is found. Otherwise, the entire collection is iterated in the forward direction.</p>
<p>If the default value for T could be present in the collection, and 
would be matched by the predicate, then this method is inappropriate, because
you cannot disguish whether the default value for T was actually present in the collection,
or no items matched the predicate. In this case, use TryFindFirstWhere.</p>
</div>
  <h5 id="Wintellect_PowerCollections_Algorithms_FindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_TryFindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__">TryFindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;, out T)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FindWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FindWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1856">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FindWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FindWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FindWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FindWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">FindWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates all the items in <code data-dev-comment-type="paramref" class="paramref">collection</code> that satisfy the condition defined
by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; FindWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to check all the items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the items that satisfy the condition.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1594">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual_" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual``1(System.Collections.Generic.IList{``0},System.Int32)">FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt;, Int32)</h4>
  <div class="markdown level1 summary"><p>Finds the first occurence of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive equal items in the
list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt; list, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to examine.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of consecutive equal items to look for. The count must be at least 1.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the first run of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive equal items, or -1 if no such run exists..</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1607">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual_" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual``1(System.Collections.Generic.IList{``0},System.Int32,System.Collections.Generic.IEqualityComparer{``0})">FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt;, Int32, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the first occurence of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive equal items in the
list. A passed IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt; list, int count, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to examine.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of consecutive equal items to look for. The count must be at least 1.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the first run of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive equal items, or -1 if no such run exists.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1624">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual_" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveEqual``1(System.Collections.Generic.IList{``0},System.Int32,Wintellect.PowerCollections.BinaryPredicate{``0})">FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt;, Int32, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the first occurence of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive &quot;equal&quot; items in the
list. The passed BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstConsecutiveEqual&lt;T&gt;(IList&lt;T&gt; list, int count, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to examine.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of consecutive equal items to look for. The count must be at least 1.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the first run of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive equal items, or -1 if no such run exists.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveEqual__1_System_Collections_Generic_IList___0__System_Int32_Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being tested for need not be true equality.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstConsecutiveWhere__1_System_Collections_Generic_IList___0__System_Int32_System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstConsecutiveWhere%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1674">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveWhere_" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstConsecutiveWhere__1_System_Collections_Generic_IList___0__System_Int32_System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstConsecutiveWhere``1(System.Collections.Generic.IList{``0},System.Int32,System.Predicate{``0})">FirstConsecutiveWhere&lt;T&gt;(IList&lt;T&gt;, Int32, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the first occurence of <code data-dev-comment-type="paramref" class="paramref">count</code> consecutive items in the
list for which a given predicate returns true.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstConsecutiveWhere&lt;T&gt;(IList&lt;T&gt; list, int count, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to examine.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of consecutive items to look for. The count must be at least 1.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The predicate used to test each item.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the first run of <code data-dev-comment-type="paramref" class="paramref">count</code> items where <code data-dev-comment-type="paramref" class="paramref">predicate</code>
returns true for all items in the run, or -1 if no such run exists.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstIndexOf__1_System_Collections_Generic_IList___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstIndexOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1959">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstIndexOf_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstIndexOf__1_System_Collections_Generic_IList___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOf``1(System.Collections.Generic.IList{``0},``0)">FirstIndexOf&lt;T&gt;(IList&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list equal to a given item.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstIndexOf&lt;T&gt;(IList&lt;T&gt; list, T item)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item equal to <code data-dev-comment-type="paramref" class="paramref">item</code>. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FirstIndexOf__1_System_Collections_Generic_IList___0____0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstIndexOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstIndexOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1972">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstIndexOf_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstIndexOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOf``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">FirstIndexOf&lt;T&gt;(IList&lt;T&gt;, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list equal to a given item. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstIndexOf&lt;T&gt;(IList&lt;T&gt; list, T item, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item equal to <code data-dev-comment-type="paramref" class="paramref">item</code>. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2081">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list equal to one of several given items.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item equal to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2096">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list equal to one of several given items. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode methods will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item equal to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.FirstIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2135">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.FirstIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the first item in a list &quot;equal&quot; to one of several given items. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int FirstIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item &quot;equal&quot; to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>, using
<code data-dev-comment-type="paramref" class="paramref">BinaryPredicate</code> as the test for equality.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_FirstIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being removed need not be true equality. This methods finds
first item X which satisfies BinaryPredicate(X,Y), where Y is one of the items in <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code></p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ForEach__1_System_Collections_Generic_IEnumerable___0__System_Action___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ForEach%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Action%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5128">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ForEach_" data-uid="Wintellect.PowerCollections.Algorithms.ForEach*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ForEach__1_System_Collections_Generic_IEnumerable___0__System_Action___0__" data-uid="Wintellect.PowerCollections.Algorithms.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">ForEach&lt;T&gt;(IEnumerable&lt;T&gt;, Action&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Performs the specified action on each item in a collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void ForEach&lt;T&gt;(IEnumerable&lt;T&gt; collection, Action&lt;T&gt; action)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Action</span>&lt;T&gt;</td>
        <td><span class="parametername">action</span></td>
        <td><p>An Action delegate which is invoked for each item in <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GeneratePermutations__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GeneratePermutations%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3226">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GeneratePermutations_" data-uid="Wintellect.PowerCollections.Algorithms.GeneratePermutations*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GeneratePermutations__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.GeneratePermutations``1(System.Collections.Generic.IEnumerable{``0})">GeneratePermutations&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Generates all the possible permutations of the items in <code data-dev-comment-type="paramref" class="paramref">collection</code>. If <code data-dev-comment-type="paramref" class="paramref">collection</code>
has N items, then N factorial permutations will be generated. This method does not compare the items to determine if
any of them are equal. If some items are equal, the same permutation may be generated more than once. For example,
if the collections contains the three items A, A, and B, then this method will generate the six permutations, AAB, AAB,
ABA, ABA, BAA, BAA (not necessarily in that order). To take equal items into account, use the GenerateSortedPermutations
method.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T[]&gt; GeneratePermutations&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T[]&gt;</td>
        <td><p>An IEnumerable&lt;T[]&gt; that enumerations all the possible permutations of the
items in <code data-dev-comment-type="paramref" class="paramref">collection</code>. Each permutations is returned as an array. The items in the array
should be copied if they need to be used after the next permutation is generated; each permutation may
reuse the same array instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3296">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations_" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations``1(System.Collections.Generic.IEnumerable{``0})">GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Generates all the possible permutations of the items in <code data-dev-comment-type="paramref" class="paramref">collection</code>, in lexicographical order.
Even if some items are equal, the same permutation will not be generated more than once. For example,
if the collections contains the three items A, A, and B, then this method will generate only the three permutations, AAB, ABA,
BAA.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T[]&gt; GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt; collection)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T[]&gt;</td>
        <td><p>An IEnumerable&lt;T[]&gt; that enumerations all the possible permutations of the
items in <code data-dev-comment-type="paramref" class="paramref">collection</code>. Each permutations is returned as an array. The items in the array
should be copied if they need to be used after the next permutation is generated; each permutation may
reuse the same array instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3316">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations_" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Generates all the possible permutations of the items in <code data-dev-comment-type="paramref" class="paramref">collection</code>, in lexicographical order. A
supplied IComparer&lt;T&gt; instance is used to compare the items.
Even if some items are equal, the same permutation will not be generated more than once. For example,
if the collections contains the three items A, A, and B, then this method will generate only the three permutations, AAB, ABA,
BAA.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T[]&gt; GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt; collection, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to permute.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The IComparer&lt;T&gt; used to compare the items.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T[]&gt;</td>
        <td><p>An IEnumerable&lt;T[]&gt; that enumerations all the possible permutations of the
items in <code data-dev-comment-type="paramref" class="paramref">collection</code>. Each permutations is returned as an array. The items in the array
should be copied if they need to be used after the next permutation is generated; each permutation may
reuse the same array instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3389">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations_" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GenerateSortedPermutations__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.GenerateSortedPermutations``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Generates all the possible permutations of the items in <code data-dev-comment-type="paramref" class="paramref">collection</code>, in lexicographical order. A
supplied Comparison&lt;T&gt; delegate is used to compare the items.
Even if some items are equal, the same permutation will not be generated more than once. For example,
if the collections contains the three items A, A, and B, then this method will generate only the three permutations, AAB, ABA,
BAA.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T[]&gt; GenerateSortedPermutations&lt;T&gt;(IEnumerable&lt;T&gt; collection, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to permute.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The Comparison&lt;T&gt; delegate used to compare the items.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T[]&gt;</td>
        <td><p>An IEnumerable&lt;T[]&gt; that enumerations all the possible permutations of the
items in <code data-dev-comment-type="paramref" class="paramref">collection</code>. Each permutations is returned as an array. The items in the array
should be copied if they need to be used after the next permutation is generated; each permutation may
reuse the same array instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items to permute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer%60%601%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4780">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1" data-uid="Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer``1">GetCollectionEqualityComparer&lt;T&gt;()</h4>
  <div class="markdown level1 summary"><p>Gets an IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation
that can be used to compare collections of elements (of type T). Two collections
of T's are equal if they have the same number of items, and corresponding
items are equal, considered in order. This is the same notion of equality as
in Algorithms.EqualCollections, but encapsulated in an IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; GetCollectionEqualityComparer&lt;T&gt;()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation suitable for
comparing collections of T for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_examples">Examples</h5>
  <p>The following code creates a Dictionary where the keys are a collection of strings.</p>
<pre><code>    Dictionary&lt;IEnumerable&lt;string>, int> = 
        new Dictionary&lt;IEnumerable&lt;string>, int>(Algorithms.GetCollectionEqualityComparer&lt;string>());</code></pre>

  <h5 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__">EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer%60%601(System.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4804">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetCollectionEqualityComparer``1(System.Collections.Generic.IEqualityComparer{``0})">GetCollectionEqualityComparer&lt;T&gt;(IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Gets an IEqualityComparer&lt;IEnumerable&lt;T>> implementation 
that can be used to compare collections of elements (of type T). Two collections
of T&apos;s are equal if they have the same number of items, and corresponding 
items are equal, considered in order. This is the same notion of equality as
in Algorithms.EqualCollections, but encapsulated in an IEqualityComparer&lt;IEnumerable&lt;T>> implementation.</p>
<p>An IEqualityComparer&lt;T> is used to determine if individual T&apos;s are equal</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; GetCollectionEqualityComparer&lt;T&gt;(IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>An IEqualityComparer&lt;T&gt; implementation used to compare individual T's.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation suitable for
comparing collections of T for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0___examples">Examples</h5>
  <p>The following code creates a Dictionary where the keys are a collection of strings, compared in a case-insensitive way</p>
<pre><code>    Dictionary&lt;IEnumerable&lt;string>, int> = 
        new Dictionary&lt;IEnumerable&lt;string>, int>(Algorithms.GetCollectionEqualityComparer&lt;string>(StringComparer.CurrentCultureIgnoreCase));</code></pre>

  <h5 id="Wintellect_PowerCollections_Algorithms_GetCollectionEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_EqualCollections__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__">EqualCollections&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetComparerFromComparison__1_System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetComparerFromComparison%60%601(System.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4706">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetComparerFromComparison_" data-uid="Wintellect.PowerCollections.Algorithms.GetComparerFromComparison*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetComparerFromComparison__1_System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetComparerFromComparison``1(System.Comparison{``0})">GetComparerFromComparison&lt;T&gt;(Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Given a comparison delegate that compares two items of type T, gets an
IComparer&lt;T&gt; instance that performs the same comparison.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IComparer&lt;T&gt; GetComparerFromComparison&lt;T&gt;(Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate to use.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><p>An IComparer&lt;T&gt; that performs the same comparing operation
as <code data-dev-comment-type="paramref" class="paramref">comparison</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetComparisonFromComparer__1_System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetComparisonFromComparer%60%601(System.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4721">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetComparisonFromComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetComparisonFromComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetComparisonFromComparer__1_System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetComparisonFromComparer``1(System.Collections.Generic.IComparer{``0})">GetComparisonFromComparer&lt;T&gt;(IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Given in IComparer&lt;T&gt; instenace that comparers two items from type T,
gets a Comparison delegate that performs the same comparison.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Comparison&lt;T&gt; GetComparisonFromComparer&lt;T&gt;(IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The IComparer&lt;T&gt; instance to use.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><p>A Comparison&lt;T&gt; delegate that performans the same comparing
operation as <code data-dev-comment-type="paramref" class="paramref">comparer</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetDictionaryConverter%60%602(System.Collections.Generic.IDictionary%7B%60%600%2C%60%601%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5093">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter_" data-uid="Wintellect.PowerCollections.Algorithms.GetDictionaryConverter*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1__" data-uid="Wintellect.PowerCollections.Algorithms.GetDictionaryConverter``2(System.Collections.Generic.IDictionary{``0,``1})">GetDictionaryConverter&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a delegate that converts keys to values by used a dictionary to map values. Keys
that a not present in the dictionary are converted to the default value (zero or null).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Converter&lt;TKey, TValue&gt; GetDictionaryConverter&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt; dictionary)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">dictionary</span></td>
        <td><p>The dictionary used to perform the conversion.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Converter</span>&lt;TKey, TValue&gt;</td>
        <td><p>A delegate to a method that converts keys to values.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>This delegate can be used as a parameter in Convert or ConvertAll methods to convert
entire collections.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1____1_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetDictionaryConverter%60%602(System.Collections.Generic.IDictionary%7B%60%600%2C%60%601%7D%2C%60%601)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5108">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter_" data-uid="Wintellect.PowerCollections.Algorithms.GetDictionaryConverter*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1____1_" data-uid="Wintellect.PowerCollections.Algorithms.GetDictionaryConverter``2(System.Collections.Generic.IDictionary{``0,``1},``1)">GetDictionaryConverter&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt;, TValue)</h4>
  <div class="markdown level1 summary"><p>Creates a delegate that converts keys to values by used a dictionary to map values. Keys
that a not present in the dictionary are converted to a supplied default value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Converter&lt;TKey, TValue&gt; GetDictionaryConverter&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt; dictionary, TValue defaultValue)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">dictionary</span></td>
        <td><p>The dictionary used to perform the conversion.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TValue</span></td>
        <td><span class="parametername">defaultValue</span></td>
        <td><p>The result of the conversion for keys that are not present in the dictionary.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Converter</span>&lt;TKey, TValue&gt;</td>
        <td><p>A delegate to a method that converts keys to values.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetDictionaryConverter__2_System_Collections_Generic_IDictionary___0___1____1__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>This delegate can be used as a parameter in Convert or ConvertAll methods to convert
entire collections.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">dictionary</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetIdentityComparer__1.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetIdentityComparer%60%601%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4677">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetIdentityComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetIdentityComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetIdentityComparer__1" data-uid="Wintellect.PowerCollections.Algorithms.GetIdentityComparer``1">GetIdentityComparer&lt;T&gt;()</h4>
  <div class="markdown level1 summary"><p>Gets an IEqualityComparer&lt;T&gt; instance that can be used to compare objects
of type T for object identity only. Two objects compare equal only if they
are references to the same object.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEqualityComparer&lt;T&gt; GetIdentityComparer&lt;T&gt;()
    where T : class</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><p>An IEqualityComparer&lt;T&gt; instance for identity comparison.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer%60%601%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4547">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer``1">GetLexicographicalComparer&lt;T&gt;()</h4>
  <div class="markdown level1 summary"><p>Creates an IComparer instance that can be used for comparing ordered
sequences of type T; that is IEnumerable&lt;Tgt;. This comparer can be used
for collections or algorithms that use sequences of T as an item type. The Lexicographical
ordered of sequences is for comparison.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IComparer&lt;IEnumerable&lt;T&gt;&gt; GetLexicographicalComparer&lt;T&gt;()
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>At IComparer&lt;IEnumerable&lt;T&gt;&gt; that compares sequences of T.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1_remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>T must implement either IComparable&lt;T&gt; and this implementation is used
to compare the items.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1_System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer%60%601(System.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4561">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1_System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer``1(System.Collections.Generic.IComparer{``0})">GetLexicographicalComparer&lt;T&gt;(IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates an IComparer instance that can be used for comparing ordered
sequences of type T; that is IEnumerable&lt;Tgt;. This comparer can be uses
for collections or algorithms that use sequences of T as an item type. The Lexicographics
ordered of sequences is for comparison.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IComparer&lt;IEnumerable&lt;T&gt;&gt; GetLexicographicalComparer&lt;T&gt;(IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>A comparer instance used to compare individual items of type T.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>At IComparer&lt;IEnumerable&lt;T&gt;&gt; that compares sequences of T.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1_System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer%60%601(System.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4577">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetLexicographicalComparer__1_System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetLexicographicalComparer``1(System.Comparison{``0})">GetLexicographicalComparer&lt;T&gt;(Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates an IComparer instance that can be used for comparing ordered
sequences of type T; that is IEnumerable&lt;Tgt;. This comparer can be uses
for collections or algorithms that use sequences of T as an item type. The Lexicographics
ordered of sequences is for comparison.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IComparer&lt;IEnumerable&lt;T&gt;&gt; GetLexicographicalComparer&lt;T&gt;(Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>A comparison delegate used to compare individual items of type T.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>At IComparer&lt;IEnumerable&lt;T&gt;&gt; that compares sequences of T.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetReverseComparer__1_System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetReverseComparer%60%601(System.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4631">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetReverseComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetReverseComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetReverseComparer__1_System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetReverseComparer``1(System.Collections.Generic.IComparer{``0})">GetReverseComparer&lt;T&gt;(IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Reverses the order of comparison of an IComparer&lt;T&gt;. The resulting comparer can be used,
for example, to sort a collection in descending order. Equality and hash codes are unchanged.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IComparer&lt;T&gt; GetReverseComparer&lt;T&gt;(IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer to reverse.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><p>An IComparer&lt;T&gt; that compares items in the reverse order of <code data-dev-comment-type="paramref" class="paramref">comparer</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items thta are being compared.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetReverseComparison__1_System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetReverseComparison%60%601(System.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4691">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetReverseComparison_" data-uid="Wintellect.PowerCollections.Algorithms.GetReverseComparison*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetReverseComparison__1_System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetReverseComparison``1(System.Comparison{``0})">GetReverseComparison&lt;T&gt;(Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Reverses the order of comparison of an Comparison&lt;T&gt;. The resulting comparison can be used,
for example, to sort a collection in descending order.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Comparison&lt;T&gt; GetReverseComparison&lt;T&gt;(Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison to reverse.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><p>A Comparison&lt;T&gt; that compares items in the reverse order of <code data-dev-comment-type="paramref" class="paramref">comparison</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items that are being compared.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">comparison</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer%60%601%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4863">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1" data-uid="Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer``1">GetSetEqualityComparer&lt;T&gt;()</h4>
  <div class="markdown level1 summary"><p>Gets an IEqualityComparer&lt;IEnumerable&lt;T>> implementation 
that can be used to compare collections of elements (of type T). Two collections
of T&apos;s are equal if they have the same number of items, and corresponding 
items are equal, without regard to order. This is the same notion of equality as
in Algorithms.EqualSets, but encapsulated in an IEqualityComparer&lt;IEnumerable&lt;T>> implementation.</p>
<p>An IEqualityComparer&lt;T> is used to determine if individual T&apos;s are equal</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; GetSetEqualityComparer&lt;T&gt;()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation suitable for
comparing collections of T for equality, without regard to order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_examples">Examples</h5>
  <p>The following code creates a Dictionary where the keys are a set of strings, without regard to order</p>
<pre><code>    Dictionary&lt;IEnumerable&lt;string>, int> = 
        new Dictionary&lt;IEnumerable&lt;string>, int>(Algorithms.GetSetEqualityComparer&lt;string>(StringComparer.CurrentCultureIgnoreCase));</code></pre>

  <h5 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__">EqualSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer%60%601(System.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4886">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer_" data-uid="Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.GetSetEqualityComparer``1(System.Collections.Generic.IEqualityComparer{``0})">GetSetEqualityComparer&lt;T&gt;(IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Gets an IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation
that can be used to compare collections of elements (of type T). Two collections
of T's are equal if they have the same number of items, and corresponding
items are equal, without regard to order. This is the same notion of equality as
in Algorithms.EqualSets, but encapsulated in an IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; GetSetEqualityComparer&lt;T&gt;(IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>An IEqualityComparer&lt;T&gt; implementation used to compare individual T's.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;<span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;&gt;</td>
        <td><p>IEqualityComparer&lt;IEnumerable&lt;T&gt;&gt; implementation suitable for
comparing collections of T for equality, without regard to order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0___examples">Examples</h5>
  <p>The following code creates a Dictionary where the keys are a set of strings, without regard to order</p>
<pre><code>    Dictionary&lt;IEnumerable&lt;string>, int> = 
        new Dictionary&lt;IEnumerable&lt;string>, int>(Algorithms.GetSetEqualityComparer&lt;string>());</code></pre>

  <h5 id="Wintellect_PowerCollections_Algorithms_GetSetEqualityComparer__1_System_Collections_Generic_IEqualityComparer___0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_EqualSets__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__">EqualSets&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMaximum%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3546">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum``1(System.Collections.Generic.IList{``0})">IndexOfMaximum&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the maximum value in a list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMaximum&lt;T&gt;(IList&lt;T&gt; list)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the largest item in the list. If the maximum value appears
multiple times, the index of the first appearance is used. If the list is empty, -1 is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values in the list are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMaximum%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3562">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IComparer{``0})">IndexOfMaximum&lt;T&gt;(IList&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the maximum value in a list. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMaximum&lt;T&gt;(IList&lt;T&gt; list, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the largest item in the list. If the maximum value appears
multiple times, the index of the first appearance is used. If the list is empty, -1 is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> or <code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMaximum%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3598">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMaximum__1_System_Collections_Generic_IList___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMaximum``1(System.Collections.Generic.IList{``0},System.Comparison{``0})">IndexOfMaximum&lt;T&gt;(IList&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the maximum value in a list. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMaximum&lt;T&gt;(IList&lt;T&gt; list, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the largest item in the list. If the maximum value appears
multiple times, the index of the first appearance is used. If the list is empty, -1 is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> or <code data-dev-comment-type="paramref" class="paramref">comparison</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMinimum%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3614">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum``1(System.Collections.Generic.IList{``0})">IndexOfMinimum&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the minimum value in a list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMinimum&lt;T&gt;(IList&lt;T&gt; list)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the smallest item in the list. If the minimum value appears
multiple times, the index of the first appearance is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values in the list are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMinimum%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3631">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IComparer{``0})">IndexOfMinimum&lt;T&gt;(IList&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the minimum value in a list. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMinimum&lt;T&gt;(IList&lt;T&gt; list, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the smallest item in the list. If the minimum value appears
multiple times, the index of the first appearance is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> or <code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndexOfMinimum%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3668">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum_" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndexOfMinimum__1_System_Collections_Generic_IList___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndexOfMinimum``1(System.Collections.Generic.IList{``0},System.Comparison{``0})">IndexOfMinimum&lt;T&gt;(IList&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the minimum value in a list. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int IndexOfMinimum&lt;T&gt;(IList&lt;T&gt; list, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the smallest item in the list. If the minimum value appears
multiple times, the index of the first appearance is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> or <code data-dev-comment-type="paramref" class="paramref">comparison</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndicesOf__1_System_Collections_Generic_IList___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndicesOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2041">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndicesOf_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndicesOf__1_System_Collections_Generic_IList___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOf``1(System.Collections.Generic.IList{``0},``0)">IndicesOf&lt;T&gt;(IList&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in a list equal to a given item.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; IndicesOf&lt;T&gt;(IList&lt;T&gt; list, T item)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items equal to <code data-dev-comment-type="paramref" class="paramref">item</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IndicesOf__1_System_Collections_Generic_IList___0____0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndicesOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndicesOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2054">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndicesOf_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndicesOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOf``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">IndicesOf&lt;T&gt;(IList&lt;T&gt;, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in a list equal to a given item. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; IndicesOf&lt;T&gt;(IList&lt;T&gt; list, T item, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items equal to <code data-dev-comment-type="paramref" class="paramref">item</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndicesOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2257">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndicesOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">IndicesOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in a list equal to one of several given items.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; IndicesOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>A collection of items to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items equal to
any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndicesOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2271">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndicesOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">IndicesOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in a list equal to one of several given items. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; IndicesOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>A collection of items to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items equal to
any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IndicesOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2307">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IndicesOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.IndicesOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">IndicesOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Enumerates the indices of all the items in a list equal to one of several given items. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;int&gt; IndicesOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>A collection of items to search for.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates the indices of items &quot;equal&quot; to any of the items
in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>, using
<code data-dev-comment-type="paramref" class="paramref">BinaryPredicate</code> as the test for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IndicesOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being removed need not be true equality. This methods finds
last item X which satisfies BinaryPredicate(X,Y), where Y is one of the items in <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code></p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IsProperSubsetOf%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2488">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf_" data-uid="Wintellect.PowerCollections.Algorithms.IsProperSubsetOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.IsProperSubsetOf``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">IsProperSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if one collection is a proper subset of another, considered as sets. The first set is a proper subset
of the second set if every item in the first set also occurs in the second set, and the first set is strictly smaller than
the second set. If an item appears X times in the first set,
it must appear at least X times in the second set.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool IsProperSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> is a subset of <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsSubsetOf method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IsProperSubsetOf%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2509">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf_" data-uid="Wintellect.PowerCollections.Algorithms.IsProperSubsetOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IsProperSubsetOf``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">IsProperSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if one collection is a proper subset of another, considered as sets. The first set is a proper subset
of the second set if every item in the first set also occurs in the second set, and the first set is strictly smaller than
the second set. If an item appears X times in the first set,
it must appear at least X times in the second set.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool IsProperSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> is a proper subset of <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IsProperSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsSubsetOf method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IsSubsetOf%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2439">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IsSubsetOf_" data-uid="Wintellect.PowerCollections.Algorithms.IsSubsetOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.IsSubsetOf``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">IsSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if one collection is a subset of another, considered as sets. The first set is a subset
of the second set if every item in the first set also occurs in the second set. If an item appears X times in the first set,
it must appear at least X times in the second set.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool IsSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> is a subset of <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsSubsetOf method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.IsSubsetOf%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2458">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_IsSubsetOf_" data-uid="Wintellect.PowerCollections.Algorithms.IsSubsetOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.IsSubsetOf``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">IsSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if one collection is a subset of another, considered as sets. The first set is a subset
of the second set if every item in the first set also occurs in the second set. If an item appears X times in the first set,
it must appear at least X times in the second set.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool IsSubsetOf&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if <code data-dev-comment-type="paramref" class="paramref">collection1</code> is a subset of <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_IsSubsetOf__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the IsSubsetOf method on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LastIndexOf__1_System_Collections_Generic_IList___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LastIndexOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2001">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LastIndexOf_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LastIndexOf__1_System_Collections_Generic_IList___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOf``1(System.Collections.Generic.IList{``0},``0)">LastIndexOf&lt;T&gt;(IList&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list equal to a given item.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LastIndexOf&lt;T&gt;(IList&lt;T&gt; list, T item)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item equal to <code data-dev-comment-type="paramref" class="paramref">item</code>. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_LastIndexOf__1_System_Collections_Generic_IList___0____0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LastIndexOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LastIndexOf%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2014">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LastIndexOf_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LastIndexOf__1_System_Collections_Generic_IList___0____0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOf``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">LastIndexOf&lt;T&gt;(IList&lt;T&gt;, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list equal to a given item. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LastIndexOf&lt;T&gt;(IList&lt;T&gt; list, T item, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item equal to <code data-dev-comment-type="paramref" class="paramref">item</code>. -1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LastIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2172">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">LastIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list equal to one of several given items.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LastIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item equal to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LastIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2186">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">LastIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list equal to one of several given items. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LastIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item equal to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LastIndexOfMany%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2223">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany_" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.LastIndexOfMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">LastIndexOfMany&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the index of the last item in a list &quot;equal&quot; to one of several given items. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LastIndexOfMany&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; itemsToLookFor, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">itemsToLookFor</span></td>
        <td><p>The items to search for.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the last item &quot;equal&quot; to any of the items in the collection <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code>, using
<code data-dev-comment-type="paramref" class="paramref">BinaryPredicate</code> as the test for equality.
-1 if no such item exists in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_LastIndexOfMany__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being removed need not be true equality. This methods finds
last item X which satisfies BinaryPredicate(X,Y), where Y is one of the items in <code data-dev-comment-type="paramref" class="paramref">itemsToLookFor</code></p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LexicographicalCompare%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4415">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare_" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Performs a lexicographical comparison of two sequences of values. A lexicographical comparison compares corresponding
pairs of elements from two sequences in order. If the first element of sequence1 is less than the first element of sequence2,
then the comparison ends and the first sequence is lexicographically less than the second. If the first elements of each sequence
are equal, then the comparison proceeds to the second element of each sequence. If one sequence is shorter than the other,
but corresponding elements are all equal, then the shorter sequence is considered less than the longer one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt; sequence1, IEnumerable&lt;T&gt; sequence2)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence1</span></td>
        <td><p>The first sequence to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence2</span></td>
        <td><p>The second sequence to compare.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Less than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically less than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Greater than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically greater than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is equal to <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>Types of items to compare. This type must implement IComparable&lt;T&gt; to allow
items to be compared.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>T must implement either IComparable&lt;T&gt; and this implementation is used
to compare the items.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.NotSupportedException</span></td>
        <td><p>T does not implement IComparable&lt;T&gt; or IComparable.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LexicographicalCompare%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4458">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare_" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Performs a lexicographical comparison of two sequences of values, using a supplied comparer interface. A lexicographical comparison compares corresponding
pairs of elements from two sequences in order. If the first element of sequence1 is less than the first element of sequence2,
then the comparison ends and the first sequence is lexicographically less than the second. If the first elements of each sequence
are equal, then the comparison proceeds to the second element of each sequence. If one sequence is shorter than the other,
but corresponding elements are all equal, then the shorter sequence is considered less than the longer one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt; sequence1, IEnumerable&lt;T&gt; sequence2, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence1</span></td>
        <td><p>The first sequence to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence2</span></td>
        <td><p>The second sequence to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The IComparer&lt;T&gt; used to compare items.
Only the Compare member function of this interface is called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Less than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically less than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Greater than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically greater than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is equal to <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>Types of items to compare.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">sequence1</code>, <code data-dev-comment-type="paramref" class="paramref">sequence2</code>, or
<code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.LexicographicalCompare%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4436">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare_" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_LexicographicalCompare__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.LexicographicalCompare``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Performs a lexicographical comparison of two sequences of values, using a supplied comparison delegate. A lexicographical comparison compares corresponding
pairs of elements from two sequences in order. If the first element of sequence1 is less than the first element of sequence2,
then the comparison ends and the first sequence is lexicographically less than the second. If the first elements of each sequence
are equal, then the comparison proceeds to the second element of each sequence. If one sequence is shorter than the other,
but corresponding elements are all equal, then the shorter sequence is considered less than the longer one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int LexicographicalCompare&lt;T&gt;(IEnumerable&lt;T&gt; sequence1, IEnumerable&lt;T&gt; sequence2, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence1</span></td>
        <td><p>The first sequence to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">sequence2</span></td>
        <td><p>The second sequence to compare.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The IComparison&lt;T&gt; delegate to compare items.
Only the Compare member function of this interface is called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Less than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically less than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Greater than zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is lexicographically greater than <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.
Zero if <code data-dev-comment-type="paramref" class="paramref">sequence1</code> is equal to <code data-dev-comment-type="paramref" class="paramref">sequence2</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>Types of items to compare.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Maximum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3408">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Maximum_" data-uid="Wintellect.PowerCollections.Algorithms.Maximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.Maximum``1(System.Collections.Generic.IEnumerable{``0})">Maximum&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the maximum value in a collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Maximum&lt;T&gt;(IEnumerable&lt;T&gt; collection)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The largest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values in the collection are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Maximum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3424">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Maximum_" data-uid="Wintellect.PowerCollections.Algorithms.Maximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.Maximum``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">Maximum&lt;T&gt;(IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the maximum value in a collection. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Maximum&lt;T&gt;(IEnumerable&lt;T&gt; collection, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The largest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Maximum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3462">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Maximum_" data-uid="Wintellect.PowerCollections.Algorithms.Maximum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Maximum__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.Maximum``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">Maximum&lt;T&gt;(IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the maximum value in a collection. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Maximum&lt;T&gt;(IEnumerable&lt;T&gt; collection, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The largest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">comparison</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Collections_Generic_IComparer___0__System_Collections_Generic_IEnumerable___0____.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.MergeSorted%60%601(System.Collections.Generic.IComparer%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4318">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_MergeSorted_" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Collections_Generic_IComparer___0__System_Collections_Generic_IEnumerable___0____" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted``1(System.Collections.Generic.IComparer{``0},System.Collections.Generic.IEnumerable{``0}[])">MergeSorted&lt;T&gt;(IComparer&lt;T&gt;, IEnumerable&lt;T&gt;[])</h4>
  <div class="markdown level1 summary"><p>Merge several sorted collections into a single sorted collection. Each input collection must be sorted
by the ordering in the passed instance of IComparer&lt;T&gt;. The merging
is stable; equal items maintain their ordering, and equal items in different collections are placed
in the order of the collections.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; MergeSorted&lt;T&gt;(IComparer&lt;T&gt; comparer, params IEnumerable&lt;T&gt;[] collections)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to sort the list. Only
the Compare method is used.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;[]</td>
        <td><span class="parametername">collections</span></td>
        <td><p>The set of collections to merge. In many languages, this parameter
can be specified as several individual parameters.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates all the items in all the collections
in sorted order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Collections_Generic_IEnumerable___0____.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.MergeSorted%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4300">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_MergeSorted_" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Collections_Generic_IEnumerable___0____" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted``1(System.Collections.Generic.IEnumerable{``0}[])">MergeSorted&lt;T&gt;(IEnumerable&lt;T&gt;[])</h4>
  <div class="markdown level1 summary"><p>Merge several sorted collections into a single sorted collection. Each input collection must be sorted
by the natural ordering of the type (it's implementation of IComparable&lt;T&gt;). The merging
is stable; equal items maintain their ordering, and equal items in different collections are placed
in the order of the collections.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; MergeSorted&lt;T&gt;(params IEnumerable&lt;T&gt;[] collections)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;[]</td>
        <td><span class="parametername">collections</span></td>
        <td><p>The set of collections to merge. In many languages, this parameter
can be specified as several individual parameters.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates all the items in all the collections
in sorted order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Comparison___0__System_Collections_Generic_IEnumerable___0____.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.MergeSorted%60%601(System.Comparison%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4392">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_MergeSorted_" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_MergeSorted__1_System_Comparison___0__System_Collections_Generic_IEnumerable___0____" data-uid="Wintellect.PowerCollections.Algorithms.MergeSorted``1(System.Comparison{``0},System.Collections.Generic.IEnumerable{``0}[])">MergeSorted&lt;T&gt;(Comparison&lt;T&gt;, IEnumerable&lt;T&gt;[])</h4>
  <div class="markdown level1 summary"><p>Merge several sorted collections into a single sorted collection. Each input collection must be sorted
by the ordering in the passed Comparison&lt;T&gt; delegate. The merging
is stable; equal items maintain their ordering, and equal items in different collections are placed
in the order of the collections.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; MergeSorted&lt;T&gt;(Comparison&lt;T&gt; comparison, params IEnumerable&lt;T&gt;[] collections)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to sort the collections.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;[]</td>
        <td><span class="parametername">collections</span></td>
        <td><p>The set of collections to merge. In many languages, this parameter
can be specified as several individual parameters.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that enumerates all the items in all the collections
in sorted order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Minimum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3477">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Minimum_" data-uid="Wintellect.PowerCollections.Algorithms.Minimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.Minimum``1(System.Collections.Generic.IEnumerable{``0})">Minimum&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the minimum value in a collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Minimum&lt;T&gt;(IEnumerable&lt;T&gt; collection)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The smallest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values in the collection are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Minimum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3493">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Minimum_" data-uid="Wintellect.PowerCollections.Algorithms.Minimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.Minimum``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">Minimum&lt;T&gt;(IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the minimum value in a collection. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Minimum&lt;T&gt;(IEnumerable&lt;T&gt; collection, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The smallest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">comparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Minimum%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3531">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Minimum_" data-uid="Wintellect.PowerCollections.Algorithms.Minimum*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Minimum__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.Minimum``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">Minimum&lt;T&gt;(IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Finds the minimum value in a collection. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T Minimum&lt;T&gt;(IEnumerable&lt;T&gt; collection, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>The smallest item in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.InvalidOperationException</span></td>
        <td><p>The collection is empty.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">comparison</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_NCopiesOf__1_System_Int32___0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.NCopiesOf%60%601(System.Int32%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5487">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_NCopiesOf_" data-uid="Wintellect.PowerCollections.Algorithms.NCopiesOf*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_NCopiesOf__1_System_Int32___0_" data-uid="Wintellect.PowerCollections.Algorithms.NCopiesOf``1(System.Int32,``0)">NCopiesOf&lt;T&gt;(Int32, T)</h4>
  <div class="markdown level1 summary"><p>Creates an IEnumerator that enumerates a given item <code data-dev-comment-type="paramref" class="paramref">n</code> times.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; NCopiesOf&lt;T&gt;(int n, T item)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">n</span></td>
        <td><p>The number of times to enumerate the item.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">item</span></td>
        <td><p>The item that should occur in the enumeration.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An IEnumerable&lt;T&gt; that yields <code data-dev-comment-type="paramref" class="paramref">n</code> copies
of <code data-dev-comment-type="paramref" class="paramref">item</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_NCopiesOf__1_System_Int32___0__examples">Examples</h5>
  <p>The following creates a list consisting of 1000 copies of the double 1.0.</p>
<pre><code>List&lt;double> list = new List&lt;double>(Algorithms.NCopiesOf(1000, 1.0));</code></pre>

  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p>The argument <code data-dev-comment-type="paramref" class="paramref">n</code> is less than zero.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Partition__1_System_Collections_Generic_IList___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Partition%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5150">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Partition_" data-uid="Wintellect.PowerCollections.Algorithms.Partition*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Partition__1_System_Collections_Generic_IList___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.Partition``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">Partition&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Partition a list or array based on a predicate. After partitioning, all items for which
the predicate returned true precede all items for which the predicate returned false.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int Partition&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to partition.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the partitioning condition.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the second half of the partition; i.e., the first item for
which <code data-dev-comment-type="paramref" class="paramref">predicate</code> returned false. If the predicate was true for all items
in the list, list.Count is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Partition__1_System_Collections_Generic_IList___0__System_Predicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomShuffle__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomShuffle%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3057">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomShuffle_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffle*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomShuffle__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffle``1(System.Collections.Generic.IEnumerable{``0})">RandomShuffle&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Randomly shuffles the items in a collection, yielding a new collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] RandomShuffle&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to shuffle.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array with the same size and items as <code data-dev-comment-type="paramref" class="paramref">collection</code>, but the items in a randomly chosen order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of the items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomShuffle__1_System_Collections_Generic_IEnumerable___0__System_Random_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomShuffle%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Random)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3069">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomShuffle_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffle*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomShuffle__1_System_Collections_Generic_IEnumerable___0__System_Random_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffle``1(System.Collections.Generic.IEnumerable{``0},System.Random)">RandomShuffle&lt;T&gt;(IEnumerable&lt;T&gt;, Random)</h4>
  <div class="markdown level1 summary"><p>Randomly shuffles the items in a collection, yielding a new collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] RandomShuffle&lt;T&gt;(IEnumerable&lt;T&gt; collection, Random randomGenerator)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to shuffle.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Random</span></td>
        <td><span class="parametername">randomGenerator</span></td>
        <td><p>The random number generator to use to select the random order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array with the same size and items as <code data-dev-comment-type="paramref" class="paramref">collection</code>, but the items in a randomly chosen order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of the items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3101">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace``1(System.Collections.Generic.IList{``0})">RandomShuffleInPlace&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Randomly shuffles the items in a list or array, in place.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RandomShuffleInPlace&lt;T&gt;(IList&lt;T&gt; list)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to shuffle.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0__System_Random_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Random)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3113">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0__System_Random_" data-uid="Wintellect.PowerCollections.Algorithms.RandomShuffleInPlace``1(System.Collections.Generic.IList{``0},System.Random)">RandomShuffleInPlace&lt;T&gt;(IList&lt;T&gt;, Random)</h4>
  <div class="markdown level1 summary"><p>Randomly shuffles the items in a list or array, in place.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RandomShuffleInPlace&lt;T&gt;(IList&lt;T&gt; list, Random randomGenerator)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to shuffle.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Random</span></td>
        <td><span class="parametername">randomGenerator</span></td>
        <td><p>The random number generator to use to select the random order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RandomShuffleInPlace__1_System_Collections_Generic_IList___0__System_Random__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomSubset%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3148">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomSubset_" data-uid="Wintellect.PowerCollections.Algorithms.RandomSubset*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.RandomSubset``1(System.Collections.Generic.IEnumerable{``0},System.Int32)">RandomSubset&lt;T&gt;(IEnumerable&lt;T&gt;, Int32)</h4>
  <div class="markdown level1 summary"><p>Picks a random subset of <code data-dev-comment-type="paramref" class="paramref">count</code> items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, and places
those items into a random order. No item is selected more than once.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] RandomSubset&lt;T&gt;(IEnumerable&lt;T&gt; collection, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to select from. This collection is not changed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items in the subset to choose.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array of <code data-dev-comment-type="paramref" class="paramref">count</code> items, selected at random from <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection implements IList&lt;T&gt;, then this method takes time O(<code data-dev-comment-type="paramref" class="paramref">count</code>).
Otherwise, this method takes time O(N), where N is the number of items in the collection.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative or greater than <code data-dev-comment-type="paramref" class="paramref">collection</code>.Count.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32_System_Random_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RandomSubset%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Int32%2CSystem.Random)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3166">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RandomSubset_" data-uid="Wintellect.PowerCollections.Algorithms.RandomSubset*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32_System_Random_" data-uid="Wintellect.PowerCollections.Algorithms.RandomSubset``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Random)">RandomSubset&lt;T&gt;(IEnumerable&lt;T&gt;, Int32, Random)</h4>
  <div class="markdown level1 summary"><p>Picks a random subset of <code data-dev-comment-type="paramref" class="paramref">count</code> items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, and places
those items into a random order. No item is selected more than once.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] RandomSubset&lt;T&gt;(IEnumerable&lt;T&gt; collection, int count, Random randomGenerator)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection of items to select from. This collection is not changed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items in the subset to choose.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Random</span></td>
        <td><span class="parametername">randomGenerator</span></td>
        <td><p>The random number generates used to make the selection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array of <code data-dev-comment-type="paramref" class="paramref">count</code> items, selected at random from <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RandomSubset__1_System_Collections_Generic_IEnumerable___0__System_Int32_System_Random__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection implements IList&lt;T&gt;, then this method takes time O(<code data-dev-comment-type="paramref" class="paramref">count</code>).
Otherwise, this method takes time O(N), where N is the number of items in the collection.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">count</code> is negative or greater than <code data-dev-comment-type="paramref" class="paramref">list</code>.Count.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">randomGenerator</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Range__1___0___System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Range%60%601(%60%600%5B%5D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L287">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Range_" data-uid="Wintellect.PowerCollections.Algorithms.Range*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Range__1___0___System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Range``1(``0[],System.Int32,System.Int32)">Range&lt;T&gt;(T[], Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Returns a view onto a sub-range of an array. Items from <code data-dev-comment-type="paramref" class="paramref">array</code> are not copied; the
returned IList&lt;T&gt; is simply a different view onto the same underlying items. Changes to <code data-dev-comment-type="paramref" class="paramref">array</code>
are reflected in the view, and vice versa. Insertions and deletions in the view change the size of the
view. After an insertion, the last item in <code data-dev-comment-type="paramref" class="paramref">array</code> &quot;falls off the end&quot;. After a deletion, the
last item in array becomes the default value (0 or null).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList&lt;T&gt; Range&lt;T&gt;(T[] array, int start, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">array</span></td>
        <td><p>The array to view.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">start</span></td>
        <td><p>The starting index of the view.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items in the view.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><p>A list that is a view onto the given sub-array.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Range__1___0___System_Int32_System_Int32__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>This method can be used to apply an algorithm to a portion of a array. For example:</p>
<pre><code>Algorithms.ReverseInPlace(Algorithms.Range(array, 3, 6))</code></pre>
<p>will reverse the 6 items beginning at index 3.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">array</code> is null.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> or <code data-dev-comment-type="paramref" class="paramref">count</code> is negative.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> + <code data-dev-comment-type="paramref" class="paramref">count</code> is greater than the
size of <code data-dev-comment-type="paramref" class="paramref">array</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Range__1_System_Collections_Generic_IList___0__System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Range%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L165">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Range_" data-uid="Wintellect.PowerCollections.Algorithms.Range*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Range__1_System_Collections_Generic_IList___0__System_Int32_System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Range``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)">Range&lt;T&gt;(IList&lt;T&gt;, Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Returns a view onto a sub-range of a list. Items from <code data-dev-comment-type="paramref" class="paramref">list</code> are not copied; the
returned IList&lt;T&gt; is simply a different view onto the same underlying items. Changes to <code data-dev-comment-type="paramref" class="paramref">list</code>
are reflected in the view, and vice versa. Insertions and deletions in the view change the size of the
view, but insertions and deletions in the underlying list do not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList&lt;T&gt; Range&lt;T&gt;(IList&lt;T&gt; list, int start, int count)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to view.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">start</span></td>
        <td><p>The starting index of the view.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">count</span></td>
        <td><p>The number of items in the view.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><p>A list that is a view onto the given sub-list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of the items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Range__1_System_Collections_Generic_IList___0__System_Int32_System_Int32__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>This method can be used to apply an algorithm to a portion of a list. For example:</p>
<pre><code>Algorithms.ReverseInPlace(Algorithms.Range(list, 3, 6))</code></pre>
<p>will reverse the 6 items beginning at index 3.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> or <code data-dev-comment-type="paramref" class="paramref">count</code> is negative.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentOutOfRangeException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code> + <code data-dev-comment-type="paramref" class="paramref">count</code> is greater than the
size of <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_ICollection___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReadOnly%60%601(System.Collections.Generic.ICollection%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L370">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReadOnly_" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_ICollection___0__" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly``1(System.Collections.Generic.ICollection{``0})">ReadOnly&lt;T&gt;(ICollection&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Returns a read-only view onto a collection. The returned ICollection&lt;T&gt; interface
only allows operations that do not change the collection: GetEnumerator, Contains, CopyTo,
Count. The ReadOnly property returns false, indicating that the collection is read-only. All other
methods on the interface throw a NotSupportedException.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ICollection&lt;T&gt; ReadOnly&lt;T&gt;(ICollection&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><p>A read-only view onto <code data-dev-comment-type="paramref" class="paramref">collection</code>. If <code data-dev-comment-type="paramref" class="paramref">collection</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_ICollection___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The data in the underlying collection is not copied. If the underlying
collection is changed, then the read-only view also changes accordingly.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReadOnly%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L466">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReadOnly_" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly``1(System.Collections.Generic.IList{``0})">ReadOnly&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Returns a read-only view onto a list. The returned IList&lt;T&gt; interface
only allows operations that do not change the list: GetEnumerator, Contains, CopyTo,
Count, IndexOf, and the get accessor of the indexer.
The IsReadOnly property returns true, indicating that the list is read-only. All other
methods on the interface throw a NotSupportedException.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList&lt;T&gt; ReadOnly&lt;T&gt;(IList&lt;T&gt; list)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><p>A read-only view onto <code data-dev-comment-type="paramref" class="paramref">list</code>. Returns null if <code data-dev-comment-type="paramref" class="paramref">list</code> is null.
If <code data-dev-comment-type="paramref" class="paramref">list</code> is already read-only, returns <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReadOnly__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The data in the underlying list is not copied. If the underlying
list is changed, then the read-only view also changes accordingly.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReadOnly__2_System_Collections_Generic_IDictionary___0___1__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReadOnly%60%602(System.Collections.Generic.IDictionary%7B%60%600%2C%60%601%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L580">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReadOnly_" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReadOnly__2_System_Collections_Generic_IDictionary___0___1__" data-uid="Wintellect.PowerCollections.Algorithms.ReadOnly``2(System.Collections.Generic.IDictionary{``0,``1})">ReadOnly&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt;)</h4>
  <div class="markdown level1 summary"><p>Returns a read-only view onto a dictionary. The returned IDictionary&lt;TKey,TValue&gt; interface
only allows operations that do not change the dictionary.
The IsReadOnly property returns true, indicating that the dictionary is read-only. All other
methods on the interface throw a NotSupportedException.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IDictionary&lt;TKey, TValue&gt; ReadOnly&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt; dictionary)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">dictionary</span></td>
        <td><p>The dictionary to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;TKey, TValue&gt;</td>
        <td><p>A read-only view onto <code data-dev-comment-type="paramref" class="paramref">dictionary</code>. Returns null if <code data-dev-comment-type="paramref" class="paramref">dictionary</code> is null.
If <code data-dev-comment-type="paramref" class="paramref">dictionary</code> is already read-only, returns <code data-dev-comment-type="paramref" class="paramref">dictionary</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReadOnly__2_System_Collections_Generic_IDictionary___0___1___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The data in the underlying dictionary is not copied. If the underlying
dictionary is changed, then the read-only view also changes accordingly.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReadWriteList__1___0___.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReadWriteList%60%601(%60%600%5B%5D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1263">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReadWriteList_" data-uid="Wintellect.PowerCollections.Algorithms.ReadWriteList*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReadWriteList__1___0___" data-uid="Wintellect.PowerCollections.Algorithms.ReadWriteList``1(``0[])">ReadWriteList&lt;T&gt;(T[])</h4>
  <div class="markdown level1 summary"><p>Creates a read-write IList&lt;T> wrapper around an array. When an array is
implicitely converted to an IList&lt;T>, changes to the items in the array cannot
be made through the interface. This method creates a read-write IList&lt;T> wrapper
on an array that can be used to make changes to the array. </p>
<p>Use this method when you need to pass an array to an algorithms that takes an 
IList&lt;T> and that tries to modify items in the list. Algorithms in this class generally do not
need this method, since they have been design to operate on arrays even when they
are passed as an IList&lt;T>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList&lt;T&gt; ReadWriteList&lt;T&gt;(T[] array)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><span class="parametername">array</span></td>
        <td><p>The array to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><p>An IList&lt;T&gt; wrapper onto <code data-dev-comment-type="paramref" class="paramref">array</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReadWriteList__1___0____remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since arrays cannot be resized, inserting an item causes the last item in the array to be automatically
removed. Removing an item causes the last item in the array to be replaced with a default value (0 or null). Clearing
the list causes all the items to be replaced with a default value.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicates%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1430">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates``1(System.Collections.Generic.IEnumerable{``0})">RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove consecutive equal items from a collection, yielding another collection. In each run of consecutive equal items
in the collection, all items after the first item in the run are removed.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with consecutive duplicates removed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicates%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1445">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove consecutive equal items from a collection, yielding another collection. In each run of consecutive equal items
in the collection, all items after the first item in the run are removed. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt; collection, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with consecutive duplicates removed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> or <code data-dev-comment-type="paramref" class="paramref">equalityComparer</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicates%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1465">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicates``1(System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove consecutive &quot;equal&quot; items from a collection, yielding another collection. In each run of consecutive equal items
in the collection, all items after the first item in the run are removed. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; RemoveDuplicates&lt;T&gt;(IEnumerable&lt;T&gt; collection, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;. An item <code>current</code> is removed if <code>predicate(first, current)==true</code>, where
<code>first</code> is the first item in the group of &quot;duplicate&quot; items.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with consecutive &quot;duplicates&quot; removed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicates__1_System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being removed need not be true equality.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1498">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace``1(System.Collections.Generic.IList{``0})">RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove consecutive equal items from a list or array. In each run of consecutive equal items
in the list, all items after the first item in the run are removed. The removal is done in-place, changing
the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt; list)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
    implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1513">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEqualityComparer{``0})">RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove subsequent consecutive equal items from a list or array. In each run of consecutive equal items
in the list, all items after the first item in the run are removed.
The replacement is done in-place, changing
the list. A passed IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt; list, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1532">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveDuplicatesInPlace``1(System.Collections.Generic.IList{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Remove consecutive &quot;equal&quot; items from a list or array. In each run of consecutive equal items
in the list, all items after the first item in the run are removed. The replacement is done in-place, changing
the list. The passed BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RemoveDuplicatesInPlace&lt;T&gt;(IList&lt;T&gt; list, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveDuplicatesInPlace__1_System_Collections_Generic_IList___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being tested for need not be true equality. </p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RemoveWhere__1_System_Collections_Generic_ICollection___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RemoveWhere%60%601(System.Collections.Generic.ICollection%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4985">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RemoveWhere_" data-uid="Wintellect.PowerCollections.Algorithms.RemoveWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RemoveWhere__1_System_Collections_Generic_ICollection___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.RemoveWhere``1(System.Collections.Generic.ICollection{``0},System.Predicate{``0})">RemoveWhere&lt;T&gt;(ICollection&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Removes all the items in the collection that satisfy the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ICollection&lt;T&gt; RemoveWhere&lt;T&gt;(ICollection&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to check all the items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><p>Returns a collection of the items that were removed. This collection contains the
items in the same order that they orginally appeared in <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RemoveWhere__1_System_Collections_Generic_ICollection___0__System_Predicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection if an array or implements IList&lt;T&gt;, an efficient algorithm that
compacts items is used. If not, then ICollection&lt;T&gt;.Remove is used
to remove items from the collection. If the collection is an array or fixed-size list,
the non-removed elements are placed, in order, at the beginning of
the list, and the remaining list items are filled with a default value (0 or null).</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0____0___0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Replace%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1285">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Replace_" data-uid="Wintellect.PowerCollections.Algorithms.Replace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0____0___0_" data-uid="Wintellect.PowerCollections.Algorithms.Replace``1(System.Collections.Generic.IEnumerable{``0},``0,``0)">Replace&lt;T&gt;(IEnumerable&lt;T&gt;, T, T)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a collection equal to a particular value with another values, yielding another collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Replace&lt;T&gt;(IEnumerable&lt;T&gt; collection, T itemFind, T replaceWith)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">itemFind</span></td>
        <td><p>The value to find and replace within <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with the appropriate replacements made.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0____0___0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0____0___0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Replace%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2C%60%600%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1300">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Replace_" data-uid="Wintellect.PowerCollections.Algorithms.Replace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0____0___0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.Replace``1(System.Collections.Generic.IEnumerable{``0},``0,``0,System.Collections.Generic.IEqualityComparer{``0})">Replace&lt;T&gt;(IEnumerable&lt;T&gt;, T, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a collection equal to a particular value with another values, yielding another collection. A passed
IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Replace&lt;T&gt;(IEnumerable&lt;T&gt; collection, T itemFind, T replaceWith, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">itemFind</span></td>
        <td><p>The value to find and replace within <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with the appropriate replacements made.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Replace%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1325">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Replace_" data-uid="Wintellect.PowerCollections.Algorithms.Replace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Replace__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.Replace``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0},``0)">Replace&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a collection that a predicate evalues at true with a value, yielding another collection. .</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Replace&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate, T replaceWith)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The predicate used to evaluate items with the collection. If the predicate returns true for a particular
item, the item is replaces with <code data-dev-comment-type="paramref" class="paramref">replaceWith</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>An new collection with the items from <code data-dev-comment-type="paramref" class="paramref">collection</code>, in the same order,
with the appropriate replacements made.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReplaceInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1352">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0_" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace``1(System.Collections.Generic.IList{``0},``0,``0)">ReplaceInPlace&lt;T&gt;(IList&lt;T&gt;, T, T)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a list or array equal to a particular value with another value. The replacement is done in-place, changing
the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void ReplaceInPlace&lt;T&gt;(IList&lt;T&gt; list, T itemFind, T replaceWith)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">itemFind</span></td>
        <td><p>The value to find and replace within <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T&apos;s
    implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0_System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReplaceInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2C%60%600%2C%60%600%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1368">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0_System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace``1(System.Collections.Generic.IList{``0},``0,``0,System.Collections.Generic.IEqualityComparer{``0})">ReplaceInPlace&lt;T&gt;(IList&lt;T&gt;, T, T, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a list or array equal to a particular value with another values.
The replacement is done in-place, changing
the list. A passed IEqualityComparer is used to determine equality.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void ReplaceInPlace&lt;T&gt;(IList&lt;T&gt; list, T itemFind, T replaceWith, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">itemFind</span></td>
        <td><p>The value to find and replace within <code data-dev-comment-type="paramref" class="paramref">collection</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0____0___0_System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0__System_Predicate___0____0_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReplaceInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D%2C%60%600)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1397">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0__System_Predicate___0____0_" data-uid="Wintellect.PowerCollections.Algorithms.ReplaceInPlace``1(System.Collections.Generic.IList{``0},System.Predicate{``0},``0)">ReplaceInPlace&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;, T)</h4>
  <div class="markdown level1 summary"><p>Replace all items in a list or array that a predicate evaluates at true with a value. The replacement is done in-place, changing
the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void ReplaceInPlace&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate, T replaceWith)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to process.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The predicate used to evaluate items with the collection. If the predicate returns true for a particular
item, the item is replaces with <code data-dev-comment-type="paramref" class="paramref">replaceWith</code>.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">replaceWith</span></td>
        <td><p>The new value to replace with.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReplaceInPlace__1_System_Collections_Generic_IList___0__System_Predicate___0____0__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Reverse__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Reverse%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5869">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Reverse_" data-uid="Wintellect.PowerCollections.Algorithms.Reverse*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Reverse__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.Reverse``1(System.Collections.Generic.IList{``0})">Reverse&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Reverses a list and returns the reversed list, without changing the source list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Reverse&lt;T&gt;(IList&lt;T&gt; source)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The list to reverse.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>A collection that contains the items from <code data-dev-comment-type="paramref" class="paramref">source</code> in reverse order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ReverseInPlace__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ReverseInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5886">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ReverseInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.ReverseInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ReverseInPlace__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.ReverseInPlace``1(System.Collections.Generic.IList{``0})">ReverseInPlace&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Reverses a list or array in place.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void ReverseInPlace&lt;T&gt;(IList&lt;T&gt; list)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to reverse.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ReverseInPlace__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.ArgumentException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is read only.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Rotate__1_System_Collections_Generic_IList___0__System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Rotate%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5917">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Rotate_" data-uid="Wintellect.PowerCollections.Algorithms.Rotate*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Rotate__1_System_Collections_Generic_IList___0__System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.Rotate``1(System.Collections.Generic.IList{``0},System.Int32)">Rotate&lt;T&gt;(IList&lt;T&gt;, Int32)</h4>
  <div class="markdown level1 summary"><p>Rotates a list and returns the rotated list, without changing the source list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Rotate&lt;T&gt;(IList&lt;T&gt; source, int amountToRotate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">source</span></td>
        <td><p>The list to rotate.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">amountToRotate</span></td>
        <td><p>The number of elements to rotate. This value can be positive or negative.
For example, rotating by positive 3 means that source[3] is the first item in the returned collection.
Rotating by negative 3 means that source[source.Count - 3] is the first item in the returned collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>A collection that contains the items from <code data-dev-comment-type="paramref" class="paramref">source</code> in rotated order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">source</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_RotateInPlace__1_System_Collections_Generic_IList___0__System_Int32_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.RotateInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5947">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_RotateInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.RotateInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_RotateInPlace__1_System_Collections_Generic_IList___0__System_Int32_" data-uid="Wintellect.PowerCollections.Algorithms.RotateInPlace``1(System.Collections.Generic.IList{``0},System.Int32)">RotateInPlace&lt;T&gt;(IList&lt;T&gt;, Int32)</h4>
  <div class="markdown level1 summary"><p>Rotates a list or array in place.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void RotateInPlace&lt;T&gt;(IList&lt;T&gt; list, int amountToRotate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to rotate.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">amountToRotate</span></td>
        <td><p>The number of elements to rotate. This value can be positive or negative.
For example, rotating by positive 3 means that list[3] is the first item in the resulting list.
Rotating by negative 3 means that list[list.Count - 3] is the first item in the resulting list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_RotateInPlace__1_System_Collections_Generic_IList___0__System_Int32__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">list</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SearchForSubsequence%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2344">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence_" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">SearchForSubsequence&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Searchs a list for a sub-sequence of items that match a particular pattern. A subsequence
of <code data-dev-comment-type="paramref" class="paramref">list</code> matches pattern at index i if list[i] is equal to the first item
in <code data-dev-comment-type="paramref" class="paramref">pattern</code>, list[i+1] is equal to the second item in <code data-dev-comment-type="paramref" class="paramref">pattern</code>,
and so forth for all the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int SearchForSubsequence&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; pattern)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">pattern</span></td>
        <td><p>The sequence of items to search for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The first index with <code data-dev-comment-type="paramref" class="paramref">list</code> that matches the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The default sense of equality for T is used, as defined by T's
implementation of IComparable&lt;T&gt;.Equals or object.Equals.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SearchForSubsequence%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2412">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence_" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">SearchForSubsequence&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Searchs a list for a sub-sequence of items that match a particular pattern. A subsequence
of <code data-dev-comment-type="paramref" class="paramref">list</code> matches pattern at index i if list[i] is equal to the first item
in <code data-dev-comment-type="paramref" class="paramref">pattern</code>, list[i+1] is equal to the second item in <code data-dev-comment-type="paramref" class="paramref">pattern</code>,
and so forth for all the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>. The passed
instance of IEqualityComparer&lt;T&gt; is used for determining if two items are equal.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int SearchForSubsequence&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; pattern, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">pattern</span></td>
        <td><p>The sequence of items to search for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality. Only the Equals method will be called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The first index with <code data-dev-comment-type="paramref" class="paramref">list</code> that matches the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SearchForSubsequence%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CWintellect.PowerCollections.BinaryPredicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2363">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence_" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.SearchForSubsequence``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},Wintellect.PowerCollections.BinaryPredicate{``0})">SearchForSubsequence&lt;T&gt;(IList&lt;T&gt;, IEnumerable&lt;T&gt;, BinaryPredicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Searchs a list for a sub-sequence of items that match a particular pattern. A subsequence
of <code data-dev-comment-type="paramref" class="paramref">list</code> matches pattern at index i if list[i] is &quot;equal&quot; to the first item
in <code data-dev-comment-type="paramref" class="paramref">pattern</code>, list[i+1] is &quot;equal&quot; to the second item in <code data-dev-comment-type="paramref" class="paramref">pattern</code>,
and so forth for all the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>. The passed
BinaryPredicate is used to determine if two items are &quot;equal&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int SearchForSubsequence&lt;T&gt;(IList&lt;T&gt; list, IEnumerable&lt;T&gt; pattern, BinaryPredicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">pattern</span></td>
        <td><p>The sequence of items to search for.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Wintellect.PowerCollections.BinaryPredicate-1.html">BinaryPredicate</a>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The BinaryPredicate used to compare items for &quot;equality&quot;.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The first index with <code data-dev-comment-type="paramref" class="paramref">list</code> that matches the items in <code data-dev-comment-type="paramref" class="paramref">pattern</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The type of items in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SearchForSubsequence__1_System_Collections_Generic_IList___0__System_Collections_Generic_IEnumerable___0__Wintellect_PowerCollections_BinaryPredicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Since an arbitrary BinaryPredicate is passed to this function, what is being tested
for in the pattern need not be equality.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetDifference%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2772">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetDifference_" data-uid="Wintellect.PowerCollections.Algorithms.SetDifference*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetDifference``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">SetDifference&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic difference of two collections. The difference of two sets
is all items that appear in the first set, but not in the second. If an item appears X times in the first set,
and Y times in the second set, the difference contains the item X - Y times (0 times if X &lt; Y).
The source collections are not changed.
A new collection is created with the difference of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetDifference&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to difference.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The difference of <code data-dev-comment-type="paramref" class="paramref">collection1</code> and <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the Difference or DifferenceWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetDifference%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2797">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetDifference_" data-uid="Wintellect.PowerCollections.Algorithms.SetDifference*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetDifference``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">SetDifference&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic difference of two collections. The difference of two sets
is all items that appear in the first set, but not in the second. If an item appears X times in the first set,
and Y times in the second set, the difference contains the item X - Y times (0 times if X &lt; Y).
The source collections are not changed.
A new collection is created with the difference of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetDifference&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The difference of <code data-dev-comment-type="paramref" class="paramref">collection1</code> and <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the difference or differenceWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetIntersection%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2645">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetIntersection_" data-uid="Wintellect.PowerCollections.Algorithms.SetIntersection*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetIntersection``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">SetIntersection&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic intersection of two collections. The intersection of two sets
is all items that appear in both of the sets. If an item appears X times in one set,
and Y times in the other set, the intersection contains the item Minimum(X,Y) times.
The source collections are not changed.
A new collection is created with the intersection of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetIntersection&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to intersect.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to intersect.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The intersection of the two collections, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the Intersection or IntersectionWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetIntersection%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2670">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetIntersection_" data-uid="Wintellect.PowerCollections.Algorithms.SetIntersection*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetIntersection``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">SetIntersection&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic intersection of two collections. The intersection of two sets
is all items that appear in both of the sets. If an item appears X times in one set,
and Y times in the other set, the intersection contains the item Minimum(X,Y) times.
The source collections are not changed.
A new collection is created with the intersection of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetIntersection&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to intersect.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to intersect.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The intersection of the two collections, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetIntersection__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the Intersection or IntersectionWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetSymmetricDifference%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2832">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference_" data-uid="Wintellect.PowerCollections.Algorithms.SetSymmetricDifference*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetSymmetricDifference``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">SetSymmetricDifference&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic symmetric difference of two collections. The symmetric difference of two sets
is all items that appear in the one of the sets, but not in the other. If an item appears X times in the one set,
and Y times in the other set, the symmetric difference contains the item AbsoluteValue(X - Y) times.
The source collections are not changed.
A new collection is created with the symmetric difference of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetSymmetricDifference&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to symmetric difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to symmetric difference.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The symmetric difference of <code data-dev-comment-type="paramref" class="paramref">collection1</code> and <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the SymmetricDifference or SymmetricDifferenceWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetSymmetricDifference%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2857">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference_" data-uid="Wintellect.PowerCollections.Algorithms.SetSymmetricDifference*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetSymmetricDifference``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">SetSymmetricDifference&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic symmetric difference of two collections. The symmetric difference of two sets
is all items that appear in the one of the sets, but not in the other. If an item appears X times in the one set,
and Y times in the other set, the symmetric difference contains the item AbsoluteValue(X - Y) times.
The source collections are not changed.
A new collection is created with the symmetric difference of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetSymmetricDifference&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to symmetric difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to symmetric difference.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The symmetric difference of <code data-dev-comment-type="paramref" class="paramref">collection1</code> and <code data-dev-comment-type="paramref" class="paramref">collection2</code>, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetSymmetricDifference__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the symmetric difference or symmetric differenceWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetUnion%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2704">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetUnion_" data-uid="Wintellect.PowerCollections.Algorithms.SetUnion*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetUnion``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">SetUnion&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic union of two collections. The union of two sets
is all items that appear in either of the sets. If an item appears X times in one set,
and Y times in the other set, the union contains the item Maximum(X,Y) times.
The source collections are not changed.
A new collection is created with the union of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetUnion&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to union.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to union.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The union of the two collections, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>The default sense of equality for T is used, as defined by T&apos;s
implementation of IComparable&lt;T>.Equals or object.Equals.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the Union or UnionWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SetUnion%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IEqualityComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2729">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SetUnion_" data-uid="Wintellect.PowerCollections.Algorithms.SetUnion*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SetUnion``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">SetUnion&lt;T&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;T&gt;, IEqualityComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Computes the set-theoretic union of two collections. The union of two sets
is all items that appear in either of the sets. If an item appears X times in one set,
and Y times in the other set, the union contains the item Maximum(X,Y) times.
The source collections are not changed.
A new collection is created with the union of the collections; the order of the
items in this collection is undefined.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; SetUnion&lt;T&gt;(IEnumerable&lt;T&gt; collection1, IEnumerable&lt;T&gt; collection2, IEqualityComparer&lt;T&gt; equalityComparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection1</span></td>
        <td><p>The first collection to union.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection2</span></td>
        <td><p>The second collection to union.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEqualityComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">equalityComparer</span></td>
        <td><p>The IEqualityComparer&lt;T&gt; used to compare items for equality.
Only the Equals and GetHashCode member functions of this interface are called.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>The union of the two collections, considered as sets.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SetUnion__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>When equal items appear in both collections, the returned collection will include an arbitrary choice of one of the
two equal items.</p>
<p>If both collections are Set, Bag, OrderedSet, or OrderedBag
collections, it is more efficient to use the union or unionWith methods on that class.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection1</code> or <code data-dev-comment-type="paramref" class="paramref">collection2</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Sort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3684">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Sort_" data-uid="Wintellect.PowerCollections.Algorithms.Sort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.Sort``1(System.Collections.Generic.IEnumerable{``0})">Sort&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] Sort&lt;T&gt;(IEnumerable&lt;T&gt; collection)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Sort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3698">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Sort_" data-uid="Wintellect.PowerCollections.Algorithms.Sort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.Sort``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">Sort&lt;T&gt;(IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] Sort&lt;T&gt;(IEnumerable&lt;T&gt; collection, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection. Only
the Compare method is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Sort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3720">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Sort_" data-uid="Wintellect.PowerCollections.Algorithms.Sort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Sort__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.Sort``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">Sort&lt;T&gt;(IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] Sort&lt;T&gt;(IEnumerable&lt;T&gt; collection, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3735">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace``1(System.Collections.Generic.IList{``0})">SortInPlace&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void SortInPlace&lt;T&gt;(IList&lt;T&gt; list)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The Quicksort algorithms is used to sort the items. In virtually all cases,
    this takes time O(N log N), where N is the number of items in the list.</p>
<p>Values are compared by using the IComparable&lt;T>
interfaces implementation on the type T.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3752">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IComparer{``0})">SortInPlace&lt;T&gt;(IList&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place. A supplied IComparer&lt;T&gt; is used
to compare the items in the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void SortInPlace&lt;T&gt;(IList&lt;T&gt; list, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection. Only
the Compare method is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The Quicksort algorithms is used to sort the items. In virtually all cases,
    this takes time O(N log N), where N is the number of items in the list.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.SortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3908">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_SortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.SortInPlace``1(System.Collections.Generic.IList{``0},System.Comparison{``0})">SortInPlace&lt;T&gt;(IList&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place. A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void SortInPlace&lt;T&gt;(IList&lt;T&gt; list, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_SortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>The Quicksort algorithms is used to sort the items. In virtually all cases,
    this takes time O(N log N), where N is the number of items in the list.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StablePartition__1_System_Collections_Generic_IList___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StablePartition%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5199">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StablePartition_" data-uid="Wintellect.PowerCollections.Algorithms.StablePartition*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StablePartition__1_System_Collections_Generic_IList___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.StablePartition``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">StablePartition&lt;T&gt;(IList&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Partition a list or array based on a predicate. After partitioning, all items for which
the predicate returned true precede all items for which the predicate returned false.
The partition is stable, which means that if items X and Y have the same result from
the predicate, and X precedes Y in the original list, X will precede Y in the
partitioned list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int StablePartition&lt;T&gt;(IList&lt;T&gt; list, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to partition.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the partitioning condition.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The index of the first item in the second half of the partition; i.e., the first item for
which <code data-dev-comment-type="paramref" class="paramref">predicate</code> returned false. If the predicate was true for all items
in the list, list.Count is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StablePartition__1_System_Collections_Generic_IList___0__System_Predicate___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3921">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSort_" data-uid="Wintellect.PowerCollections.Algorithms.StableSort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSort``1(System.Collections.Generic.IEnumerable{``0})">StableSort&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] StableSort&lt;T&gt;(IEnumerable&lt;T&gt; collection)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3936">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSort_" data-uid="Wintellect.PowerCollections.Algorithms.StableSort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSort``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">StableSort&lt;T&gt;(IEnumerable&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection. A supplied IComparer&lt;T&gt; is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] StableSort&lt;T&gt;(IEnumerable&lt;T&gt; collection, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection. Only
the Compare method is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSort%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3962">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSort_" data-uid="Wintellect.PowerCollections.Algorithms.StableSort*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSort``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">StableSort&lt;T&gt;(IEnumerable&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a sorted version of a collection. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection.
A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] StableSort&lt;T&gt;(IEnumerable&lt;T&gt; collection, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array containing the sorted version of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StableSort__1_System_Collections_Generic_IEnumerable___0__System_Comparison___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values are compared by using the IComparable&lt;T&gt;
interfaces implementation on the type T.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3976">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace``1(System.Collections.Generic.IList{``0})">StableSortInPlace&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void StableSortInPlace&lt;T&gt;(IList&lt;T&gt; list)
    where T : IComparable&lt;T&gt;</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Values are compared by using the IComparable&lt;T>
    interfaces implementation on the type T.</p>
<p>Although arrays cast to IList&lt;T> are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Collections.Generic.IComparer%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L3993">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IComparer{``0})">StableSortInPlace&lt;T&gt;(IList&lt;T&gt;, IComparer&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection.
A supplied IComparer&lt;T&gt; is used
to compare the items in the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void StableSortInPlace&lt;T&gt;(IList&lt;T&gt; list, IComparer&lt;T&gt; comparer)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Collections.Generic.IComparer</span>&lt;T&gt;</td>
        <td><span class="parametername">comparer</span></td>
        <td><p>The comparer instance used to compare items in the collection. Only
the Compare method is used.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Collections_Generic_IComparer___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.StableSortInPlace%60%601(System.Collections.Generic.IList%7B%60%600%7D%2CSystem.Comparison%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4159">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_StableSortInPlace_" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0__" data-uid="Wintellect.PowerCollections.Algorithms.StableSortInPlace``1(System.Collections.Generic.IList{``0},System.Comparison{``0})">StableSortInPlace&lt;T&gt;(IList&lt;T&gt;, Comparison&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Sorts a list or array in place. The sort is stable, which means that if items X and Y are equal,
and X precedes Y in the unsorted collection, X will precede Y is the sorted collection.
A supplied Comparison&lt;T&gt; delegate is used
to compare the items in the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void StableSortInPlace&lt;T&gt;(IList&lt;T&gt; list, Comparison&lt;T&gt; comparison)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">list</span></td>
        <td><p>The list or array to sort.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Comparison</span>&lt;T&gt;</td>
        <td><span class="parametername">comparison</span></td>
        <td><p>The comparison delegate used to compare items in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_StableSortInPlace__1_System_Collections_Generic_IList___0__System_Comparison___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Although arrays cast to IList&lt;T&gt; are normally read-only, this method
will work correctly and modify an array passed as <code data-dev-comment-type="paramref" class="paramref">list</code>.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ToArray__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ToArray%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L5380">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ToArray_" data-uid="Wintellect.PowerCollections.Algorithms.ToArray*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ToArray__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.ToArray``1(System.Collections.Generic.IEnumerable{``0})">ToArray&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Create an array with the items in a collection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static T[] ToArray&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>Collection to create array from.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>T[]</td>
        <td><p>An array with the items from the collection, in enumeration order.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>Element type of the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_ToArray__1_System_Collections_Generic_IEnumerable___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If <code data-dev-comment-type="paramref" class="paramref">collection</code> implements ICollection&lt;T&gt;T, then
ICollection&lt;T&gt;.CopyTo() is used to fill the array. Otherwise, the IEnumerable&lt;T&gt;.GetEnumerator()
is used to fill the array.</p>
</div>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">collection</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ToString__1_System_Collections_Generic_IEnumerable___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ToString%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2915">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ToString_" data-uid="Wintellect.PowerCollections.Algorithms.ToString*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ToString__1_System_Collections_Generic_IEnumerable___0__" data-uid="Wintellect.PowerCollections.Algorithms.ToString``1(System.Collections.Generic.IEnumerable{``0})">ToString&lt;T&gt;(IEnumerable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Gets a string representation of the elements in the collection.
The string representation starts with &quot;{&quot;, has a list of items separated
by commas (&quot;,&quot;), and ends with &quot;}&quot;. Each item in the collection is
converted to a string by calling its ToString method (null is represented by &quot;null&quot;).
Contained collections (except strings) are recursively converted to strings by this method.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static string ToString&lt;T&gt;(IEnumerable&lt;T&gt; collection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>A collection to get the string representation of.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The string representation of the collection. If <code data-dev-comment-type="paramref" class="paramref">collection</code> is null, then the string &quot;null&quot; is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ToString__1_System_Collections_Generic_IEnumerable___0__System_Boolean_System_String_System_String_System_String_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ToString%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Boolean%2CSystem.String%2CSystem.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2935">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ToString_" data-uid="Wintellect.PowerCollections.Algorithms.ToString*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ToString__1_System_Collections_Generic_IEnumerable___0__System_Boolean_System_String_System_String_System_String_" data-uid="Wintellect.PowerCollections.Algorithms.ToString``1(System.Collections.Generic.IEnumerable{``0},System.Boolean,System.String,System.String,System.String)">ToString&lt;T&gt;(IEnumerable&lt;T&gt;, Boolean, String, String, String)</h4>
  <div class="markdown level1 summary"><p>Gets a string representation of the elements in the collection.
The string to used at the beginning and end, and to separate items,
and supplied by parameters. Each item in the collection is
converted to a string by calling its ToString method (null is represented by &quot;null&quot;).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static string ToString&lt;T&gt;(IEnumerable&lt;T&gt; collection, bool recursive, string start, string separator, string end)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>A collection to get the string representation of.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">recursive</span></td>
        <td><p>If true, contained collections (except strings) are converted to strings by a recursive call to this method, instead
of by calling ToString.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">start</span></td>
        <td><p>The string to appear at the beginning of the output string.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">separator</span></td>
        <td><p>The string to appear between each item in the string.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">end</span></td>
        <td><p>The string to appear at the end of the output string.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The string representation of the collection. If <code data-dev-comment-type="paramref" class="paramref">collection</code> is null, then the string &quot;null&quot; is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.ArgumentNullException</span></td>
        <td><p><code data-dev-comment-type="paramref" class="paramref">start</code>, <code data-dev-comment-type="paramref" class="paramref">separator</code>, or <code data-dev-comment-type="paramref" class="paramref">end</code>
is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_ToString__2_System_Collections_Generic_IDictionary___0___1__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.ToString%60%602(System.Collections.Generic.IDictionary%7B%60%600%2C%60%601%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L2984">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_ToString_" data-uid="Wintellect.PowerCollections.Algorithms.ToString*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_ToString__2_System_Collections_Generic_IDictionary___0___1__" data-uid="Wintellect.PowerCollections.Algorithms.ToString``2(System.Collections.Generic.IDictionary{``0,``1})">ToString&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt;)</h4>
  <div class="markdown level1 summary"><p>Gets a string representation of the mappings in a dictionary.
The string representation starts with &quot;{&quot;, has a list of mappings separated
by commas (&quot;, &quot;), and ends with &quot;}&quot;. Each mapping is represented
by &quot;key-&gt;value&quot;. Each key and value in the dictionary is
converted to a string by calling its ToString method (null is represented by &quot;null&quot;).
Contained collections (except strings) are recursively converted to strings by this method.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static string ToString&lt;TKey, TValue&gt;(IDictionary&lt;TKey, TValue&gt; dictionary)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">dictionary</span></td>
        <td><p>A dictionary to get the string representation of.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The string representation of the collection, or &quot;null&quot;
if <code data-dev-comment-type="paramref" class="paramref">dictionary</code> is null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TrueForAll__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TrueForAll%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L4932">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TrueForAll_" data-uid="Wintellect.PowerCollections.Algorithms.TrueForAll*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TrueForAll__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__" data-uid="Wintellect.PowerCollections.Algorithms.TrueForAll``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">TrueForAll&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Determines if all of the items in the collection satisfy the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool TrueForAll&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to check all the items in.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defines the condition to check for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if all of the items in the collection satisfy the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>, or if the collection is empty. False if one or more items
in the collection do not satisfy <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TryFindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TryFindFirstWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D%2C%60%600%40)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1749">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TryFindFirstWhere_" data-uid="Wintellect.PowerCollections.Algorithms.TryFindFirstWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TryFindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__" data-uid="Wintellect.PowerCollections.Algorithms.TryFindFirstWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0},``0@)">TryFindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;, out T)</h4>
  <div class="markdown level1 summary"><p>Finds the first item in a collection that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool TryFindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate, out T foundItem)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">foundItem</span></td>
        <td><p>Outputs the first item in the collection that matches the condition, if the method returns true.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if an item satisfying the condition was found. False if no such item exists in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_TryFindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_FindFirstWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__">FindFirstWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TryFindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TryFindLastWhere%60%601(System.Collections.Generic.IEnumerable%7B%60%600%7D%2CSystem.Predicate%7B%60%600%7D%2C%60%600%40)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1805">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TryFindLastWhere_" data-uid="Wintellect.PowerCollections.Algorithms.TryFindLastWhere*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TryFindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0__" data-uid="Wintellect.PowerCollections.Algorithms.TryFindLastWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0},``0@)">TryFindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;, out T)</h4>
  <div class="markdown level1 summary"><p>Finds the last item in a collection that satisfies the condition
defined by <code data-dev-comment-type="paramref" class="paramref">predicate</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static bool TryFindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt; collection, Predicate&lt;T&gt; predicate, out T foundItem)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><span class="parametername">collection</span></td>
        <td><p>The collection to search.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Predicate</span>&lt;T&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>A delegate that defined the condition to check for.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">foundItem</span></td>
        <td><p>Outputs the last item in the collection that matches the condition, if the method returns true.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if an item satisfying the condition was found. False if no such item exists in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_TryFindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>If the collection implements IList&lt;T&gt;, then the list is scanned in reverse until a
matching item is found. Otherwise, the entire collection is iterated in the forward direction.</p>
</div>
  <h5 id="Wintellect_PowerCollections_Algorithms_TryFindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0____0___seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Wintellect.PowerCollections.Algorithms.html#Wintellect_PowerCollections_Algorithms_FindLastWhere__1_System_Collections_Generic_IEnumerable___0__System_Predicate___0__">FindLastWhere&lt;T&gt;(IEnumerable&lt;T&gt;, Predicate&lt;T&gt;)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_ICollection_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TypedAs%60%601(System.Collections.ICollection)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L780">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TypedAs_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_ICollection_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs``1(System.Collections.ICollection)">TypedAs&lt;T&gt;(ICollection)</h4>
  <div class="markdown level1 summary"><p>Given a non-generic ICollection interface, wrap a generic ICollection&lt;T&gt;
interface around it. The generic interface will enumerate the same objects as the
underlying non-generic collection, but can be used in places that require a generic interface.
The underlying non-generic collection must contain only items that
are of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it. This method is useful
when interfacing older, non-generic collections to newer code that uses generic interfaces.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ICollection&lt;T&gt; TypedAs&lt;T&gt;(ICollection untypedCollection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.ICollection</span></td>
        <td><span class="parametername">untypedCollection</span></td>
        <td><p>An untyped collection. This collection should only contain
items of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><p>A generic ICollection&lt;T&gt; wrapper around <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code>.
If <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The item type of the wrapper collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_ICollection__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Some collections implement both generic and non-generic interfaces. For efficiency,
    this method will first attempt to cast <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code> to ICollection&lt;T>. 
    If that succeeds, it is returned; otherwise, a wrapper object is created.</p>
<p>Unlike the generic interface, the non-generic ICollection interfaces does
not contain methods for adding or removing items from the collection. For this reason,
the returned ICollection&lt;T> will be read-only.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IEnumerable_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TypedAs%60%601(System.Collections.IEnumerable)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L683">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TypedAs_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IEnumerable_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs``1(System.Collections.IEnumerable)">TypedAs&lt;T&gt;(IEnumerable)</h4>
  <div class="markdown level1 summary"><p>Given a non-generic IEnumerable interface, wrap a generic IEnumerable&lt;T&gt;
interface around it. The generic interface will enumerate the same objects as the
underlying non-generic collection, but can be used in places that require a generic interface.
The underlying non-generic collection must contain only items that
are of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it. This method is useful
when interfacing older, non-generic collections to newer code that uses generic interfaces.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; TypedAs&lt;T&gt;(IEnumerable untypedCollection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.IEnumerable</span></td>
        <td><span class="parametername">untypedCollection</span></td>
        <td><p>An untyped collection. This collection should only contain
items of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;T&gt;</td>
        <td><p>A generic IEnumerable&lt;T&gt; wrapper around <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code>.
If <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The item type of the wrapper collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IEnumerable__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Some collections implement both generic and non-generic interfaces. For efficiency,
this method will first attempt to cast <code data-dev-comment-type="paramref" class="paramref">untypedCollection</code> to IEnumerable&lt;T&gt;.
If that succeeds, it is returned; otherwise, a wrapper object is created.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IList_.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.TypedAs%60%601(System.Collections.IList)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L883">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_TypedAs_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IList_" data-uid="Wintellect.PowerCollections.Algorithms.TypedAs``1(System.Collections.IList)">TypedAs&lt;T&gt;(IList)</h4>
  <div class="markdown level1 summary"><p>Given a non-generic IList interface, wrap a generic IList&lt;T&gt;
interface around it. The generic interface will enumerate the same objects as the
underlying non-generic list, but can be used in places that require a generic interface.
The underlying non-generic list must contain only items that
are of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it. This method is useful
when interfacing older, non-generic lists to newer code that uses generic interfaces.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList&lt;T&gt; TypedAs&lt;T&gt;(IList untypedList)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.IList</span></td>
        <td><span class="parametername">untypedList</span></td>
        <td><p>An untyped list. This list should only contain
items of type <code data-dev-comment-type="paramref" class="paramref">T</code> or a type derived from it.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><p>A generic IList&lt;T&gt; wrapper around <code data-dev-comment-type="paramref" class="paramref">untypedlist</code>.
If <code data-dev-comment-type="paramref" class="paramref">untypedlist</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The item type of the wrapper list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_TypedAs__1_System_Collections_IList__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Some collections implement both generic and non-generic interfaces. For efficiency,
this method will first attempt to cast <code data-dev-comment-type="paramref" class="paramref">untypedList</code> to IList&lt;T&gt;.
If that succeeds, it is returned; otherwise, a wrapper object is created.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_ICollection___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Untyped%60%601(System.Collections.Generic.ICollection%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L971">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Untyped_" data-uid="Wintellect.PowerCollections.Algorithms.Untyped*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_ICollection___0__" data-uid="Wintellect.PowerCollections.Algorithms.Untyped``1(System.Collections.Generic.ICollection{``0})">Untyped&lt;T&gt;(ICollection&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Given a generic ICollection&lt;T&gt; interface, wrap a non-generic (untyped)
ICollection interface around it. The non-generic interface will contain the same objects as the
underlying generic collection, but can be used in places that require a non-generic interface.
This method is useful when interfacing generic interfaces with older code that uses non-generic interfaces.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ICollection Untyped&lt;T&gt;(ICollection&lt;T&gt; typedCollection)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;T&gt;</td>
        <td><span class="parametername">typedCollection</span></td>
        <td><p>A typed collection to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.ICollection</span></td>
        <td><p>A non-generic ICollection wrapper around <code data-dev-comment-type="paramref" class="paramref">typedCollection</code>.
If <code data-dev-comment-type="paramref" class="paramref">typedCollection</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The item type of the underlying collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_ICollection___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Many generic collections already implement the non-generic interfaces directly. This
method will first attempt to simply cast <code data-dev-comment-type="paramref" class="paramref">typedCollection</code> to ICollection. If that
succeeds, it is returned; if it fails, then a wrapper object is created.</p>
</div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_IList___0__.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms.Untyped%60%601(System.Collections.Generic.IList%7B%60%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L1129">View Source</a>
  </span>
  <a id="Wintellect_PowerCollections_Algorithms_Untyped_" data-uid="Wintellect.PowerCollections.Algorithms.Untyped*"></a>
  <h4 id="Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_IList___0__" data-uid="Wintellect.PowerCollections.Algorithms.Untyped``1(System.Collections.Generic.IList{``0})">Untyped&lt;T&gt;(IList&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Given a generic IList&lt;T&gt; interface, wrap a non-generic (untyped)
IList interface around it. The non-generic interface will contain the same objects as the
underlying generic list, but can be used in places that require a non-generic interface.
This method is useful when interfacing generic interfaces with older code that uses non-generic interfaces.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IList Untyped&lt;T&gt;(IList&lt;T&gt; typedList)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IList</span>&lt;T&gt;</td>
        <td><span class="parametername">typedList</span></td>
        <td><p>A typed list to wrap.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.IList</span></td>
        <td><p>A non-generic IList wrapper around <code data-dev-comment-type="paramref" class="paramref">typedList</code>.
If <code data-dev-comment-type="paramref" class="paramref">typedList</code> is null, then null is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>The item type of the underlying list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Wintellect_PowerCollections_Algorithms_Untyped__1_System_Collections_Generic_IList___0___remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>Many generic collections already implement the non-generic interfaces directly. This
method will first attempt to simply cast <code data-dev-comment-type="paramref" class="paramref">typedList</code> to IList. If that
succeeds, it is returned; if it fails, then a wrapper object is created.</p>
</div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/SOFAgh/CADability/new/master/apiSpec/new?filename=Wintellect_PowerCollections_Algorithms.md&amp;value=---%0Auid%3A%20Wintellect.PowerCollections.Algorithms%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/SOFAgh/CADability/blob/master/CADability/Algorithms.cs/#L42" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
                <h5>In This Article</h5>
                <div></div>
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            
            <span>Generated by <strong>DocFX</strong></span>
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
